加入收藏 | 设为首页 | 会员中心 | 我要投稿 南阳站长网 (https://www.0377zz.cn/)- 专有云、图像技术、AI硬件、云计算、数据集成!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP 使用openssl 扩展实现公钥加密的方法

发布时间:2022-07-15 11:24:44 所属栏目:PHP教程 来源:互联网
导读:下面小编就为大家分享一篇PHP 使用openssl 扩展实现公钥加密的方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。 如下所示: // 生成私钥 # openssl genrsa -out rsa_private_key.pem 1024 // 生成公钥 # openssl rsa -in rsa_privat
  下面小编就为大家分享一篇PHP 使用openssl 扩展实现公钥加密的方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。
 
  如下所示:
 
  // 生成私钥
  # openssl genrsa -out rsa_private_key.pem 1024
  // 生成公钥
  # openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
  下面是示例代码:
 
  <?php
  // openssl 扩展检测
  var_dump(extension_loaded('openssl'));
  $prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私钥
  $pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公钥
  // 明文数据
  $data = 'test-string!';
  /**
   * 可能会出的问题:Don't know how to get public key from this private key
   * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题
   */
  // 公钥加密
  $encrypt_data = '';
  openssl_public_encrypt($data, $encrypt_data, $pubkey);
  $encrypt_data = base64_encode($encrypt_data);
  echo $encrypt_data;
  echo '<br/>';
  // ------------------------------------------------------------
  // 私钥解密
  $encrypt_data = base64_decode($encrypt_data);
  openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
  var_dump($decrypt_data);
 

(编辑:南阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读