openssl / RSA - 使用公钥解密

时间:2013-01-14 21:58:44

标签: linux openssl rsa

我正在寻找安全的软件更新程序,我正在维护运行Linux的设备。我想生成更新包内容的md5sum,然后使用私钥加密该哈希值,然后再将其发送给客户。当他们加载更新时,设备应该解密哈希,验证它,然后继续安装包。

我正在尝试使用OpenSSL和RSA。我发现this线程,并且气馁。然后我找到了this线程,并想知道Perl是如何解决这一切所谓的不可能性的。我在C中这样做,所以也许某个地方的SSL库中有一个并行函数?

所以我的问题是:我可以强制命令行Linux将公钥作为解密输入,还是使用C来规避该限制?

提前致谢,所有。

1 个答案:

答案 0 :(得分:10)

假设您使用openssl genrsa生成了公共和私有RSA密钥:

$ 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

这是你要找的吗?