为什么我不能用OpenSSL加密?

时间:2012-06-01 15:58:54

标签: encryption openssl rsa

我在创建公钥/私钥对并使用它加密文件时遇到了问题。

首先我生成私钥:

openssl genrsa -out private.pem 2048

然后我提取公钥:

openssl rsa -in private.pem -out public.pem -outform PEM -pubout

这样我就可以加密我的文件了:

openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl

然后我被告知:

Loading 'screen' into random state - done
unable to load Private Key
7064:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:
    Expecting: ANY PRIVATE KEY

我不明白......为什么要加载私有键?如何使用公钥加密文件?

1 个答案:

答案 0 :(得分:7)

您忘了指定它是公钥,需要完成explicitly。这有效(我使用pkeyutl,不推荐使用特定的“utl”):

openssl pkeyutl -encrypt -in myfile.txt -pubin -inkey public.pem -out file.ssl

您必须小心放置-pubin - 如果在-inkey public.pem之后指定,您将再次收到与之前相同的错误。是的,我知道。

相关问题