使用openssl命令剖析RSA私钥文件格式
Openssl提供了强大证书功能,生成密钥对、证书,颁发证书、生成crl、验证证书、销毁证书等。本文将j介绍如何利用openssl的命令分析RSA私钥文件格式,同时也将简单介绍几种常见的私钥文件格式。
1 生成私钥文件
openssl有多种方法生成私钥:
genrsa生成RSA密钥。req在生成req证书请求时同时产生密钥。genpkey除了可以生成RSA密钥外,还可以生成DSA、DH密钥。这里我使用genpkey命令生成RSA私钥文件,选择DES-EDE3-CBC算法进行加密,口令是1234:
4 公私钥操作分析完私钥和公钥格式,以及之间的关系。接下来我们将继续使用openssl的rsautl测试它们之间的加解密、签名、验证等操作。
测试文件test,内容“1234567890”。
4.1加解密
1)公钥加密
openssl rsautl -encrypt -in test -out test.enc -inkey asn1pub.pem -pubin
2)私钥解密
openssl rsautl -decrypt -in test.enc -out test.dec -inkey asn1enc.pem
比较test和test.dec两个文件结果相同。
4.2签名验证
1)私钥签名
openssl rsautl -sign -in test -out test.sig-inkey asn1enc.pem
2)公钥验证
openssl rsautl -verify -in test.sig -out test.vfy -inkey asn1pub.pem -pubin
比较test和test.vfy连个文件应该相同。