OpenSSL常用命令快速上手RSA篇我们的操作流程为:生成RSA密钥key.pem(也称私钥,密钥对)。从key.pem中导出公钥pubkey.pem。使用公钥pubkey.pem对文件test.txt进行加密,得到密文test.enc。使用私钥key.pem对test.enc进行解密,得到译文test.dec。对比test.txt和test.dec,应该是一样的。使用key.pem对test.txt进行签名,得到test.sig。使用pubkey.pem对test.txt的签名test.sig进行验签。key.pem ====导出=====> pubkey.pempubkey.pem + text.txt ===公钥加密===> test.enckey.pem + test.enc ===私钥解密===> test.deckey.pem + test.txt ===私钥签名===> test.sigpubkey.pem + test.txt + test.sig ==> 验证签名命令如下:1. 生成密钥对并导出公钥# 生成密钥对openssl genrsa -out key.pem# 导出公钥openssl rsa -in key.pem -pubout -out pubkey.pem参数说明:-out: 指定输出的文件-in: 指定输入的文件-pubout: 指定输出公钥。如果不加该参数,默认输出的为私钥2. 加解密操作# 生成一个待加密的测试文件echo “hello, world” > test.txt# 公钥加密openssl rsautl -encrypt -pubin -inkey pubkey.pem -in test.txt -out test.encopenssl rsautl -decrypt -inkey key.pem -in test.enc -out test.dec参数说明:-encrypt: 加密操作-decrypt: 解密操作-pubin: 指定输入公钥。如果不加该参数,则认为输入的为私钥-inkey: 密钥文件核对文件# 如果没有任何输出,则文件相同cmp test.txt test.dec3. 签名、验签# 签名openssl dgst -sign key.pem -sha256 -out test.sig test.txt# 验签openssl dgst -verify pubkey.pem -sha256 -signature test.sig test.txt参数说明:-sign: 使用私钥签名-verify: 使用公钥验签-sha256: 摘要算法,也可以为md5/sha1/sha384/sha512等,签名验签使用的摘要算法应相同-signature: 待验证的签名文件4. 查看密钥信息# 查看私钥信息openssl rsa -in key.pem -noout -text# 查看公钥信息openssl rsa -pubin -in pubkey.pem -noout -text参数说明:-noout: 不打印密钥数据-text: 以文本方式打印密钥信息