openssl/RSA - 使用公钥解密

mus*_*abi 7 linux openssl rsa

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

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

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

所有人都提前谢谢.

lar*_*sks 10

假设您使用以下方法生成了公共和私有RSA密钥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
Run Code Online (Sandbox Code Playgroud)

您可以使用私钥签名,如下所示:

$ md5sum myfile | openssl rsautl -inkey mykey -sign > checksum.signed
Run Code Online (Sandbox Code Playgroud)

您可以使用公钥验证此数据:

$ openssl rsautl -inkey mykey.pub -pubin -in checksum.signed
df713741d8e92b15977ccd6e019730a5  myfile
Run Code Online (Sandbox Code Playgroud)

这是你在找什么?

  • 您现在正在签署 md5sum 的文本输出,而不是直接签署/验证“myfile”。**警告** 使用 MD5 或 512 位 RSA 密钥当然是完全不安全的。 (3认同)