PHP 使用openssl 扩展实现公钥加密的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-05 16:35:00 浏览: 评论:0
下面小编就为大家分享一篇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);
Tags: openssl扩展 PHP公钥加密
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)