使用genrsa指令生成私钥,指定模的长度为 2048 bit(256byte)。
openssl genrsa -out privkey.pem 2048
使用rsa指令生成公钥,关键的选项为-pubout,告诉openssl需要输出的文件为公钥文件。
openssl rsa -in privkey.pem -pubout -out pubkey.pem
这只是用来测试加解密的明文,你也可以用其它形式的明文替代
echo penghuikang@foxmail.com > info.txt
使用rsautl指令及-encrypt选项对明文进行加密,-pubin选项告诉openssl通过-inkey选项传入的密钥为公钥,因为如果没有该选项,openssl默认认为-inkey传入的是私钥。
openssl rsautl -encrypt -in info.txt -inkey pubkey.pem -pubin -out info.txt.enc
如果你需要使用一个x509证书中的RSA公钥的进行加密,则使用-certin选项来代替-pubin,以此来告诉openssl通过-inkey选项传入的是一个带RSA公钥的证书,使用证书中的RSA公钥进行加密。
openssl rsautl -encrypt -in info.txt -inkey pubkey.pem -certin -out info.txt.enc
使用rsautl指令及-decrypt选项对明文进行解密,如上所述,此时不需要传入-pubin选项,因为此时-inkey传入的是私钥。
openssl rsautl -decrypt -in info.txt.enc -inkey privkey.pem -out info_decrypt.txt
使用rsautl指令、-sign选项及-inkey指定的私钥对明文进行签名,得到签名文件info.txt.sign。
openssl rsautl -sign -in info.txt -inkey privkey.pem -out info.txt.sign
使用rsautl指令、-verify选项及-inkey指定的公钥对密文进行验证,并得到明文文件info_verify.txt。
openssl rsautl -verify -in info.txt.sign -inkey pubkey.pem -pubin -out info_verify.txt
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!