我在创建公钥/私钥对并使用它加密文件时遇到了问题。
首先我生成私钥:
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
我不明白......为什么要加载私有键?如何使用公钥加密文件?
答案 0 :(得分:7)
您忘了指定它是公钥,需要完成explicitly。这有效(我使用pkeyutl
,不推荐使用特定的“utl”):
openssl pkeyutl -encrypt -in myfile.txt -pubin -inkey public.pem -out file.ssl
您必须小心放置-pubin
- 如果在-inkey public.pem
之后指定,您将再次收到与之前相同的错误。是的,我知道。