当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-05 16:35:00 浏览: 评论:0 

下面小编就为大家分享一篇PHP 使用openssl 扩展实现公钥加密的方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

如下所示:

  1. // 生成私钥 
  2. # openssl genrsa -out rsa_private_key.pem 1024 
  3. // 生成公钥 
  4. # openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 

下面是示例代码:

  1. <?php 
  2. // openssl 扩展检测 
  3. var_dump(extension_loaded('openssl')); 
  4. $prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私钥 
  5. $pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公钥 
  6. // 明文数据 
  7. $data = 'test-string!'
  8. /** 
  9.  * 可能会出的问题:Don't know how to get public key from this private key 
  10.  * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题 
  11.  */ 
  12. // 公钥加密 
  13. $encrypt_data = ''
  14. openssl_public_encrypt($data$encrypt_data$pubkey); 
  15. $encrypt_data = base64_encode($encrypt_data); 
  16. echo $encrypt_data
  17. echo '<br/>'
  18. // ------------------------------------------------------------ 
  19. // 私钥解密 
  20. $encrypt_data = base64_decode($encrypt_data); 
  21. openssl_private_decrypt($encrypt_data$decrypt_data$prikey); 
  22. var_dump($decrypt_data);

Tags: openssl扩展 PHP公钥加密

分享到: