我发现this用openssl生成rsa公钥并用es加密的方法:
openssl genrsa -aes256 -out public.pem 4096
我该如何使用rc4做同样的事情?
openssl genrsa -rc4 -out public.pem 4096
Generating RSA private key, 4096 bit long modulus
...............................................................................................................................++
...............................++
e is 65537 (0x010001)
140272337293760:error:09069071:PEM routines:PEM_ASN1_write_bio:unsupported cipher:../crypto/pem/pem_lib.c:309:
有什么办法吗?
答案 0 :(得分:1)
您使用的命令将生成RSA密钥对(私有和公共),而不是公共密钥。加密公共密钥通常是没有意义的,因为它应该是公共的。
如果要加密密钥对,则OpenSSL不支持RC4进行PEM加密,但是可以使用openssl加密来加密密钥文件。
openssl rc4 -in keypair.pem -out keypair.enc -pbkdf2
如果要使用密钥,则必须将其解密:
openssl rc4 -d -in keypair.enc -out keypair.pem -pbkdf2
请注意,建议使用pbkdf2选项,但不是必须的。另外,只有最新的OpenSSL版本1.1.1支持pbkdf2,如果使用的是旧版本,则必须删除该选项。
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