为什么我不能用OpenSSL加密?

Meh*_*dad 3 encryption openssl rsa

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

首先我生成私钥:

openssl genrsa -out private.pem 2048
Run Code Online (Sandbox Code Playgroud)

然后我提取公钥:

openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Run Code Online (Sandbox Code Playgroud)

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

openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl
Run Code Online (Sandbox Code Playgroud)

但后来我被告知:

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
Run Code Online (Sandbox Code Playgroud)

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

emb*_*oss 7

您忘了指定它是公钥,需要明确地完成.这有效(我正在使用pkeyutl,特定的"utl"已被弃用):

openssl pkeyutl -encrypt -in myfile.txt -pubin -inkey public.pem -out file.ssl
Run Code Online (Sandbox Code Playgroud)

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