openssl简要操作

Posted by LuckXiang on April 11, 2018

以前做安全相关项目的时候积累了一些openssl的命令,虽然用help命令是最好的查询方式,但是有时候完整的demo还是很有参考价值的


生成明文私钥文件, -out指定生成文件的,默认为PEM编码格式,这个文件即可用来加密也可以用来解密:

openssl genrsa -out key.pri -f4 2048 

通过私钥文件提取生成公钥的文件

openssl rsa -inform PEM -in key.pri -out key.pub -pubout

打印私钥信息

openssl rsa -inform PEM -in key.pri -text -noout

打印公钥信息

openssl rsa -inform PEM -in key.pub -pubin -text -noout

将明文私钥文件转换为密码保护

openssl rsa -inform PEM -in key.pri -des3 -out key.prides  

对boot.bin文件进行哈希

openssl dgst -sha256 boot.bin

对boot.bin文件进行哈希输出到boot.sha256

openssl dgst -sha256 -out boot.sha256 -binary boot.bin

对boot.bin文件进行哈希后,再用私钥key.pri进行签名,签名文件存在boot.sig里

openssl dgst -sha256 -sign key.pri -out boot.sig boot.bin

用key.pub中的公钥文件对数据进行验证签名。输出结果仅仅是”Verification OK” 和 “Verification Failure”中的一种。

openssl dgst -sha256 -verify key.pub -signature boot.sig boot.bin

使用公钥key.pub对a.txt文件加密,生成密文文件b.txt

openssl rsautl -encrypt -pubin -inkey key.pub -in a.txt -out b.txt  

使用私钥key.pri对b.txt文件解密,生成明文文件c.txt

openssl rsautl -decrypt -inkey key.pri -in b.txt -out c.txt

对文件签名,文件a.txt的内容不能太长

openssl rsautl -sign -inkey key.pri -in a.txt  -out a.sig

验证签名,验证成功后打印出a.txt的内容

openssl rsautl -verify -pubin -inkey key.pub -in a.sig