查看: 430|回复: 0

Rsa加密和解密

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2025-5-25 18:14:06 | 显示全部楼层 |阅读模式
代码:

  1. <?php

  2. namespace addons\carplate\library;

  3. use think\Config;

  4. class Rsa
  5. {
  6.     /**
  7.      * Rsa加密解密
  8.      * @params $data = json_encode(array('numberplate'=>'鲁B81Y01', 'carColor' => 0),JSON_UNESCAPED_UNICODE)
  9.      */
  10.     public function RSA_openssl($data, $operate = 'encode')
  11.     {
  12.         // 系统参数配置
  13.         $site = Config::get("site");
  14.         //RSA 公钥
  15.         $rsa_public = $site['etc_pubkey'];
  16.    
  17.         //RSA 公钥加密
  18.         if ('encode' == $operate) {
  19.             $public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
  20.             $key = openssl_pkey_get_public($public_key);
  21.             if (!$key) {
  22.                 // echo '公钥不可用';
  23.                 return array('error_code' => 1001, 'error_msg' => '加密公钥不可用');
  24.             }
  25.             $return_en = openssl_public_encrypt($data, $crypted, $key);
  26.             if (!$return_en) {
  27.                 // echo '公钥加密失败';
  28.                 return array('error_code' => 1002, 'error_msg' => '公钥加密失败');
  29.             }
  30.             return base64_encode($crypted);
  31.         }
  32.    
  33.         //RSA 公钥解密
  34.         if ('decode' == $operate) {
  35.             $public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
  36.             $key = openssl_pkey_get_public($public_key);
  37.             if (!$key) {
  38.                 // echo '公钥不可用';
  39.                 return array('error_code' => 2001, 'error_msg' => '解密公钥不可用');
  40.             }
  41.             $return_de = openssl_public_decrypt(base64_decode($data), $decrypted, $key);
  42.             if (!$return_de) {
  43.                 // echo '公钥解密失败';
  44.                 return array('error_code' => 2002, 'error_msg' => '公钥解密失败');
  45.             }
  46.             return $decrypted;
  47.         }
  48.     }
  49. }
复制代码


道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部