您现在的位置是:首页 > 学无止境
php实现RSA的加密解密和签名验签功能
php实现RSA的加密解密和签名验签功能
转载自:https://segmentfault.com/a/1190000042334788
一:生成RSA的私钥和公钥
1:RSA私钥生成
$resource = openssl_pkey_new(); openssl_pkey_export($resource, $privateKey);echo($privateKey);
2:RSA公钥生成
$resource = openssl_pkey_new(); $detail = openssl_pkey_get_details($resource); $publicKey = $detail['key'];echo($publicKey);
注意:
如果在生成私钥和公钥时出现如下提示:
需要将你的php环境下的openssl.cnf文件地址加到系统环境变量中
增加变量名OPENSSL_CONF,变量值为openssl.cnf文件地址
二:RSA实现私钥加密和公钥解密
1:RSA私钥加密
$key = '123';//需要加密的字符串 $pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串 openssl_private_encrypt($key, $encryptedData, $pkey); $encryptedData = base64_encode($encryptedData); echo($encryptedData);
2:RSA公钥解密
$pkey = openssl_pkey_get_public($publicKey);//$publicKey为公钥字符串 openssl_public_decrypt(base64_decode($encryptedData), $data, $pkey);//$encryptedData为私钥加密串 echo($data);
三:RSA实现签名和验签
1:私钥签名
$key = '123';//需要签名的字符串 $pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串 openssl_sign($key, $signature,$privateKey); openssl_free_key($pkey); $signature = base64_encode($signature); echo($signature);
2:公钥验签
$pkey = openssl_pkey_get_public($publicKey);//公钥字符串 $verify = openssl_verify($key, base64_decode($signature),$publicKey); //$key为需要签名的字符串 //$signature为签名后字符串 openssl_free_key($pkey); echo($verify);
根据如上我们就可以实现RSA的加密解密和使用RSA的私钥公钥实现签名和验签功能了!
上一篇:聊聊并发编程的10个坑
文章评论
- 登录后评论
点击排行
-
php-fpm安装、配置与优化
转载自:https://www.zybuluo.com/phper/note/89081 1、php中...
-
centos下postgresql的安装与配置
一、安装(以root身份进行)1、检出最新的postgresql的yum配置从ht...
-
Mysql的大小写敏感性
MYSQL在默认的情况下查询是不区分大小写的,例如:CREATE TABLE...
-
关于URL编码
转载自:http://www.ruanyifeng.com/blog/2010/02/url_encoding....
-
header中的Cache-control
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的...