openssl rsautl
用途:
使用RSA算法签名,验证身份,加密、解密数据
语法:
openssl rsautl [-in file] [-out file] [-inkey file] [-passin arg]
[-keyform PEM|DER|NET] [-pubin] [-certin][-asn1parse] [-hexdump] [-raw]
[-oaep] [-ssl] [-pkcs] [-x931] [-sign] [-verify][-encrypt] [-decrypt]
[-rev] [-engine e]
参数说明:
-in filename :需要处理的文件,默认为标准输入。
-out filename :指定输出文件名,默认为标准输出。
-inkey file :指定我们的私有密钥文件,格式必须是RSA私有密钥文件。
-passin arg :指定私钥包含口令存放方式。比如用户将私钥的保护口令写入一个文件,采用此选项指定此文件,可以免去用户输入口令的操作。比如用户将口令写入文件“pwd.txt”,输入的参数为:-passin file:pwd.txt。
-keyform PEM|DER|NET:证书私钥的格式。
-pubin :表明我们输入的是一个公钥文件,默认输入为私钥文件。
-certin :表明我们输入的是一个证书文件。
-asn1parse :对输出的数据进行ASN1分析。该指令一般和-verify一起用的时候威力大。
-hexdump :用十六进制输出数据。
-pkcs、 -oaep、 -ssl、 -raw、-x931
:采用的填充模式,上述四个值分别代表:PKCS#1.5(缺省值)、 PKCS#1 OAEP、SSLv2、X931里面特定的填充模式,或者不填充。如果要签名,只有-pkcs和-raw可以使用。
-sign :给输入的数据签名。需要我们的私有密钥文件。
-verify :对输入的数据进行验证。
-encrypt :用我们的公共密钥对输入的数据进行加密。
-decrypt :用RSA的私有密钥对输入的数据进行解密。
-rev :数据是否倒序。
-engine e :硬件引擎。
例子:
生成RSA密钥:
openssl genrsa -des3 -out prikey.pem
分离出公钥:
openssl genrsa -des3 -out prikey.pem
openssl rsa -in prikey.pem -pubout -out pubkey.pem
对文件签名:
openssl rsautl -sign -inkey prikey.pem -in a.txt -hexdump,文件a.txt的内容不能太长;
openssl rsautl -sign -inkey prikey.pem -in a.txt -out sig.dat
openssl rsautl -verify -inkey prikey.pem -in sig.dat
公钥加密:
openssl rsautl -encrypt -pubin -inkey pubkey.pem -in a.txt -out b.txt
私钥解密:
openssl rsautl -decrypt -inkey prikey.pem -in b.txt
用证书中的公钥加密:
openssl rsautl -encrypt -certin -inkey cert1.pem -in a.txt
用一个私钥对数据进行签名:
openssl rsautl -sign -in file -inkey key.pem -out sig
恢复签名数据:
openssl rsautl -verify -in sig -inkey key.pem
openssl系列命令大纲:http://www.cnblogs.com/aixiaoxiaoyu/p/8650180.html