####生成公钥私钥
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";
评论区