linux 使用公钥的Openssl解密

jogvjijk  于 2022-11-02  发布在  Linux
关注(0)|答案(3)|浏览(252)

我需要解密一个使用私钥加密的文件。我有一个公钥可以用来解密这个文件。我该怎么做呢?我做了:

openssl rsautl -in file -inkey key.pem

但这并不起作用。这将错误显示为:

unable to load Private Key
3074128072:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: ANY PRIVATE KEY
dzjeubhm

dzjeubhm1#

公钥不能用于解密,只能用于加密和验证加密签名。

8ehkhllq

8ehkhllq2#

与所有人相反,事实上,您可以使用公钥进行解密,* 但是 * 前提是您的数据是使用适当的私钥加密的。
至于你如何解密它,从我所看到的openssl实用程序并没有提供这个功能。看起来你必须使用一些利用OpenSSL C API(https://www.openssl.org/docs/man1.0.2/crypto/RSA_public_decrypt.html)的东西。
要么直接使用C API,要么使用PHP绑定到OpenSSL之类的方法。

6kkfgxo0

6kkfgxo03#

Openssl CLI可以通过rsautl子命令实现“用公钥解密”,如下所示:

openssl rsautl -verify -inkey public_key.pem -pubin -in data.sig -raw -hexdump

**注意:**这里,“decrypt”被松散地定义为模幂运算,而使用的API实际上是-verify算法。警告:不建议使用自己的加密算法,并且误用RSA很容易创建一个损坏的安全系统。

相关问题