如何生成128位/256位弱RSA密钥?OpenSSL生成失败的解决办法
生成弱RSA密钥的可行方案
OpenSSL新版本出于安全考虑限制了最小RSA密钥长度,要生成128/256位这类弱密钥,试试下面几种方法:
使用旧版OpenSSL
OpenSSL 1.0.x及更早版本没有强制的最小密钥长度限制,直接执行你原来的命令即可:openssl genrsa -out test.key 128修改OpenSSL源码重新编译
找到报错对应的源码文件providers/implementations/keymgmt/rsa_kmgmt.c,定位到密钥长度检查的逻辑(比如原代码中判断密钥长度是否低于某个阈值的代码段),把阈值改成你需要的数值(比如128),然后重新编译OpenSSL。编译完成后的版本就能正常生成弱密钥了。用Python脚本生成
借助cryptography库可以绕开长度限制,写个简单脚本就能生成目标密钥:from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives import serialization # 生成128位RSA私钥 private_key = rsa.generate_private_key( public_exponent=65537, key_size=128, ) # 将私钥保存为PEM格式文件 with open("test.key", "wb") as f: f.write(private_key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption() ))先安装依赖库:
pip install cryptography,执行脚本就能得到128位的RSA私钥。
内容的提问来源于stack exchange,提问作者FalcoGer
相关产品推荐
相关产品推荐

