如何使用OpenSSL 1.0.2j生成RSA密钥?附32位密钥实操示例
OpenSSL 1.0.2j 32位RSA密钥生成实操记录
版本环境确认
先通过命令确认当前使用的OpenSSL版本:
openssl version
输出结果:
OpenSSL 1.0.2j 26 Sep 2016
密钥生成与查看命令
出于学习RSA密钥结构的目的,我执行了以下命令:生成32位RSA私钥文件key.pem,并直接查看其明文格式的详细参数:
openssl genrsa -out key.pem 32; openssl rsa -in key.pem -text -noout
命令完整输出解析
执行上述命令后,得到的输出内容如下(补充完整截断的字段):
Generating RSA private key, 32 bit long modulus
.+++++++++++++++++++++++++++
.+++++++++++++++++++++++++++
e is 65537 (0x10001)
Private-Key: (32 bit)
modulus: 3049905109 (0xb5c9dbd5)
publicExponent: 65537 (0x10001)
privateExponent: 643259637 (0x26575cf5)
prime1: 59747 (0xe963)
prime2: 51047 (0xc767)
exponent1: 25755 (0x649b)
exponent2: 2027 (0x7f3)
coefficient: 50555 (0xc5bb)
这里要特别提醒:32位的RSA密钥仅适合学习和测试场景,绝对不能用于生产环境——密钥长度过短,极易被暴力破解。另外输出里的publicExponent用了RSA标准的65537(0x10001),这个指数在安全性和计算效率之间平衡得很好,是目前应用最广泛的选择。
内容的提问来源于stack exchange,提问作者Bai Bing
相关产品推荐
相关产品推荐

