侧边栏壁纸
  • 累计撰写 175 篇文章
  • 累计创建 87 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

使用openssl实现RSA非对称加密

Z先森
2018-11-28 / 0 评论 / 0 点赞 / 10 阅读 / 1333 字 / 正在检测是否收录...

####生成公钥私钥

openssl genrsa -out rsa_private_key.pem 1024
参数:genrsa 生成密钥 -out 输出到文件  rsa_private_key.pem 文件名 1024 长度

####从私钥中提取公钥:

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
参数: rsa 提取公钥 -in 从文件中读入  rsa_private_key.pem 文件名 -pubout 输出 -out 到文件 rsa_public_key.pem 文件名

####shell使用openssl公钥加密

openssl rsautl -encrypt -in readme.txt -inkey rsa_public_key.pem -pubin|base64

加密后的字符串

lNJ50ODiofcp+adrtAI943HOsjdDTg3UMfUkt0NI7DhUjxCM+NAlBH08WVQRtYK9W8ZoQOta3QH6
PzmJT4WsI0yfNGiUWYgoYgSOtPURSQMbaCt3DM2Y5mEKqzbKLrhN+S+9Jrtmef1VuBUes8wN6rOD
UHxI+vDwQ+utRJRRo9U=

####php使用openssl私钥解密 php需要安装并启用openssl.so模块

<?php
$encrypted="lNJ50ODiofcp+adrtAI943HOsjdDTg3UMfUkt0NI7DhUjxCM+NAlBH08WVQRtYK9W8ZoQOta3QH6
PzmJT4WsI0yfNGiUWYgoYgSOtPURSQMbaCt3DM2Y5mEKqzbKLrhN+S+9Jrtmef1VuBUes8wN6rOD
UHxI+vDwQ+utRJRRo9U=";
echo $encrypted."\n";
//私钥解密
$private_key=file_get_contents("rsa_private_key.pem");
$pi_key =  openssl_pkey_get_private($private_key); 
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);
echo "解密后:\n";
echo $decrypted."\n";
0

评论区