`openssl genrsa` 和 `openssl genpkey -algorithm rsa` 之间的区别?

use*_*739 7 ssl openssl libressl

似乎以下两个命令(来自 LibreSSL 的 openssl)都会生成私钥。它们之间有区别吗?如果不是,为什么有两种方式生成私钥?谢谢。

openssl genrsa -out key.pem 1024
openssl genpkey -algorithm rsa -out privkey.pem -pkeyopt rsa_keygen_bits:1024
Run Code Online (Sandbox Code Playgroud)

Ste*_*ich 9

两种方法都创建 RSA 密钥,尽管格式不同。genrsa输出 PKCS#1 格式的 RSA 密钥,同时genpkey输出更通用的容器,可以管理不同类型的密钥(如 ECC)。有关详细信息,请参阅“\xe2\x80\x9cBEGIN RSA PRIVATE KEY\xe2\x80\x9d 和 \xe2\x80\x9cBEGIN PRIVATE KEY 之间的差异” 。

\n

请注意,genpkey 的文档明确指出应使用此工具而不是特定于算法的 genrsa:

\n
\n

鼓励使用 genpkey 程序而不是特定于算法的实用程序,因为可以使用其他算法选项和 ENGINE 提供的算法。

\n
\n