如何在openssl中使用rc4加密公钥?

如何在openssl中使用rc4加密公钥?,openssl,rsa,rc4-cipher,Openssl,Rsa,Rc4 Cipher,我找到了用openssl生成rsa公钥并用aes加密的方法: openssl genrsa-aes256-out public.pem 4096 我如何对rc4执行同样的操作: openssl genrsa-rc4-out public.pem 4096 生成RSA私钥,4096位长模 .........................................................................................................

我找到了用openssl生成rsa公钥并用aes加密的方法:

openssl genrsa-aes256-out public.pem 4096

我如何对rc4执行同样的操作:

openssl genrsa-rc4-out public.pem 4096
生成RSA私钥,4096位长模
...............................................................................................................................++
...............................++
e是65537(0x010001)
140272337293760:错误:09069071:PEM例程:PEM_ASN1_write_bio:不支持的密码:../crypto/PEM/PEM_lib.c:309:


有什么方法可以做到这一点吗?

您使用的命令会生成RSA密钥对(私钥和公钥),而不是公钥。加密公钥通常没有意义,因为它应该是公开的

如果要加密密钥对,OpenSSL不支持RC4 for PEM加密,但可以使用OpenSSL加密来加密密钥文件

openssl rc4 -in keypair.pem -out keypair.enc -pbkdf2
如果要使用密钥,必须对其进行解密:

openssl rc4 -d -in keypair.enc -out keypair.pem -pbkdf2
请注意,建议使用pbkdf2选项,但不是强制性的。此外,pbkdf2仅在最新的OpenSSL版本1.1.1中受支持,如果您使用的是旧版本,则必须删除该选项

openssl rc4 -in keypair.enc -out keypair.pem
如果确实要加密公钥,则必须从密钥对中提取公钥:

openssl rsa -in keypair.pem -out pub.pem -pubout
并对其进行加密:

openssl rc4 -in pub.pem -out pub.enc -pbkdf2

大多数人都同意并欢迎,但是:
enc-pbkdf2
仅在2个月前发布的1.1.1中;许多环境(发行版等)都没有那么快,所以您可能需要自己构建。在没有
-pbkdf2
或更低版本的情况下,它使用EVP_BytesToKey进行1次迭代,这是不好的,但不比传统的PEM加密差。对于
pkcs12-导出
,选项为
-nocerts
(带s),但
-rc4
(或任何
-cipher
)仅适用于导入,即P12到PEM;导出时会忽略它。导出选项是
-keypbe cipher
,对于rc4来说失败,就像
pkcs8-topk8
pkey
genpkey
do一样。感谢您的评论。你是对的。我更新了答案,删除了pkcs#12并解释了pbkdf2选项。