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

问题描述

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

openssl genrsa -out key.pem 1024
openssl genpkey -algorithm rsa -out privkey.pem -pkeyopt rsa_keygen_bits:1024

解决方法

这两种方式都会创建 RSA 密钥,尽管格式不同。 genrsa 输出 PKCS#1 格式的 RSA 密钥,而 genpkey 输出可以管理不同类型密钥(如 ECC)的更通用的容器。有关详情,请参阅 Differences between “BEGIN RSA PRIVATE KEY” and “BEGIN PRIVATE KEY"

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...