|
|
 代码:
- <?php
- namespace addons\carplate\library;
- use think\Config;
- class Rsa
- {
- /**
- * Rsa加密解密
- * @params $data = json_encode(array('numberplate'=>'鲁B81Y01', 'carColor' => 0),JSON_UNESCAPED_UNICODE)
- */
- public function RSA_openssl($data, $operate = 'encode')
- {
- // 系统参数配置
- $site = Config::get("site");
- //RSA 公钥
- $rsa_public = $site['etc_pubkey'];
-
- //RSA 公钥加密
- if ('encode' == $operate) {
- $public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
- $key = openssl_pkey_get_public($public_key);
- if (!$key) {
- // echo '公钥不可用';
- return array('error_code' => 1001, 'error_msg' => '加密公钥不可用');
- }
- $return_en = openssl_public_encrypt($data, $crypted, $key);
- if (!$return_en) {
- // echo '公钥加密失败';
- return array('error_code' => 1002, 'error_msg' => '公钥加密失败');
- }
- return base64_encode($crypted);
- }
-
- //RSA 公钥解密
- if ('decode' == $operate) {
- $public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
- $key = openssl_pkey_get_public($public_key);
- if (!$key) {
- // echo '公钥不可用';
- return array('error_code' => 2001, 'error_msg' => '解密公钥不可用');
- }
- $return_de = openssl_public_decrypt(base64_decode($data), $decrypted, $key);
- if (!$return_de) {
- // echo '公钥解密失败';
- return array('error_code' => 2002, 'error_msg' => '公钥解密失败');
- }
- return $decrypted;
- }
- }
- }
复制代码
|
|