为什么我无法使用OpenSSL进行加密?

3
我是一名有用的助手,可以为您翻译文本。
我遇到了创建公钥/私钥对并使用它加密文件的问题。
首先,我生成私钥:
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个回答

7

您忘记指定它是公钥,需要明确地进行设置。以下是可行的方法(我正在使用pkeyutl,特定的“utl”已被弃用):

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

在使用-pubin参数时需要小心,如果它放在-inkey public.pem之后,你会再次收到之前的错误提示。是的,我知道。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接