php实现RSA的加密解密和签名验签功能
一:生成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 = https://www.it610.com/article/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);
【php实现RSA的加密解密和签名验签功能】根据如上我们就可以实现RSA的加密解密和使用RSA的私钥公钥实现签名和验签功能了!
推荐阅读
- DeepLearning学习|(pytorch-深度学习)使用pytorch框架nn.RNN实现循环神经网络
- Java实现读写文件功能的代码分享
- Java使用泛型实现栈结构的示例代码
- vue-print-nb实现页面打印功能实例(含分页打印)
- EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune
- 企业如何利用大数据改变运营模式实现商业增值
- android模拟实现航拍遥控
- java|SpringBoot整合腾讯云短信服务实现发送短信功能(一篇就够了)
- Django|Django 自定义404 500等错误页面的实现
- Vue项目导出|前端使用vue实现导出pdf