rsa生成公私钥php,php中rsa生成公私钥和加解密

php中rsa生成公私钥和加解密

注意:php使用RSA时需要开启openssl扩展

生成公私钥

//创建公私钥

$res = openssl_pkey_new();

//获取私钥

openssl_pkey_export($res, $private_key);

//获取公钥

$public_key = openssl_pkey_get_details($res)[‘key‘];

//组合rsa

$rsa = [

‘public_key‘ => $public_key,

‘private_key‘ => $private_key,

];

echo "

"; 
 

var_dump($rsa);

exit;

结果:

f5eeadaed15debbe1f3dc6306a49a054.png

rsa加解密

这里把上面获取的公私钥分别保存到变量 $public_key,$private_key

公钥加密,私钥解密

/**

* 公钥加密

*/

$data = ‘rsa加密解密‘;

//解析公钥

$res = openssl_pkey_get_public($public_key);

//使用公钥加密数据

openssl_public_encrypt($data, $crypted, $res);

echo "

"; 
 

var_dump($crypted);

exit;

加密后结果:

b784b82cc6cd70fcd669b9a6d8d1178a.png

/**

* 私钥解密

*/

//解析私钥

$res = openssl_pkey_get_private($private_key);

//使用私钥解密数据

openssl_private_decrypt($crypted, $decrypted, $res);

echo "

"; 
 

var_dump($decrypted);

exit;

解密后结果:

25eec45acb2460dc6af389ee144e7f50.png

私钥加密,公钥解密

/**

* 私钥加密

*/

$data = ‘rsa加密解密‘;

//解析私钥

$res = openssl_pkey_get_private($private_key);

//使用私钥加密

openssl_private_encrypt($data, $crypted, $res);

/**

* 公钥解密

*/

//解析公钥

$res = openssl_pkey_get_public($public_key);

openssl_public_decrypt($data, $decrypted, $res);

echo "

"; 
 

var_dump($decrypted);

exit;

结果和公钥加密,私钥解密差不多,这里就不截图了

使用场景

私钥加密,公钥解密: 用于签名

公钥加密,私钥解密: 用于加解密

原文:https://www.cnblogs.com/trblog/p/13149931.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值