假设您使用openssl genrsa
生成了公钥和私钥:
$ openssl genrsa -out mykey
Generating RSA private key, 512 bit long modulus
...++++++++++++
..........++++++++++++
e is 65537 (0x10001)
$ openssl rsa -in mykey -pubout -out mykey.pub
writing RSA key
您可以使用私钥签名内容,示例代码:
$ md5sum myfile | openssl rsautl -inkey mykey -sign > checksum.signed
您可以使用公钥验证这些数据:
$ openssl rsautl -inkey mykey.pub -pubin -in checksum.signed
df713741d8e92b15977ccd6e019730a5 myfile
这是您在寻找的内容吗?
注意:我建议您使用签名和验证例程,而不是尝试使用底层的RSA加密和解密例程自己实现它们。
尽管如此,Openssl CLI可以通过rsautl
子命令实现“使用公钥解密”:
openssl rsautl -verify -inkey public_key.pem -pubin -in data.sig -raw -hexdump
M
,加密(解密(M)) = M
和解密(加密(M)) = M
。 - Duncan Jones