如何为PKCS#1格式RSA私钥添加密码短语加密?
问题解答
1. 私钥是否未设置密码短语?
是的,你能直接查看-----BEGIN RSA PRIVATE KEY-----与-----END RSA PRIVATE KEY-----之间的明文Base64内容,说明该私钥完全没有设置密码短语。
- 加密后的私钥,PEM格式头部会变为
-----BEGIN ENCRYPTED PRIVATE KEY-----(标准PKCS#8格式),或者旧格式仍显示-----BEGIN RSA PRIVATE KEY-----但内容是加密后的乱码,无法直接识别为可解析的私钥结构。
2. 如何为无密码私钥添加密码短语加密?
你之前的命令缺少加密算法指定参数,导致OpenSSL默认输出未加密的私钥。完全可以给未加密的私钥添加密码保护,正确的命令如下:
方式1:生成旧格式加密RSA私钥
openssl rsa -in input_key.pem -aes256 -passout "pass:secret" -out output_key.pem
-aes256指定使用AES-256算法加密,也可替换为aes128、des3等其他加密算法。- 生成的私钥头部仍为
-----BEGIN RSA PRIVATE KEY-----,但内容是加密后的,导入时需要输入密码。
方式2:生成标准PKCS#8加密私钥(推荐,兼容性更好)
openssl pkcs8 -topk8 -in input_key.pem -out output_key.pem -aes256 -passout "pass:secret"
- 生成的私钥头部为
-----BEGIN ENCRYPTED PRIVATE KEY-----,是当前更通用的加密私钥格式。
执行上述命令后,你可以查看output_key.pem的内容,会发现已经是加密后的乱码,导入设备时就需要输入设置的密码短语了。
内容的提问来源于stack exchange,提问作者Segfault
相关产品推荐
相关产品推荐

