shell之openssl进行RSA加解密

因工作需要用到RSA2对数据进行加解密,因此对相关算法的用法进行了简单的学习,这里mark一下。

这里主要是用的openssl工具在命令行完成了公私密钥的生成,以及使用公钥对数据加密,使用私钥对数据解密。(需要特别注意加密和签名不一样,签名是私钥加签,公钥解签,这里小白一枚的我就弄错过!)

1.生成公私钥

#生成私钥,默认生成的是PKCS1格式的
openssl genrsa -out privateKey.pem 2048
#如果需要生成PKCS8格式,需要进行转化
openssl pkcs8 -topk8 -in privateKey.pem -out PKCS8_privateKey.pem -nocrypt
#生成对应的公钥
openssl rsa in PKCS8_privateKey.pem -out PKCS8_publicKey.pem -pubout

2.使用公钥对数据加密

#$infile指需要加密的数据文件(明文),$rsafile指加密后的数据文件(密文)
#-pubin指明输入的是公钥文件,因为默认为私钥文件,所以这里需要指明
openssl rsautl -encrypt -in $infile -inkey PKCS8_publicKey.pem -pubin -out $rsafile

3.使用私钥进行解密

#$rsafile指需要解密的密文,$outfile指解密后的数据文件
openssl rsautl -decrypt -in $rsafile -inkey PKCS8_privateKey.pem -out $outfile

你可能感兴趣的:(shell,安全,服务器,linux,bash)