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 = 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的私钥公钥实现签名和验签功能了!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfeabi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01