如何获取1024位RSA私钥的十六进制格式?
获取1024位RSA私钥的十六进制核心值
你之前的问题出在:直接转换的是完整的PKCS#1/PKCS#8格式私钥文件,这类文件包含了RSA私钥的所有参数(模数、私钥指数、素数等)以及ASN.1编码结构,远不止1024位。要得到纯1024位的私钥核心(即私钥指数d),需要从完整私钥中提取该参数。
方法一:手动提取(直观)
- 用OpenSSL解析私钥,输出所有明文参数:
输出会包含类似如下内容:openssl rsa -in key.pri -text -nooutPrivate-Key: (1024 bit) modulus: 00:a1:b2:c3:...(128字节十六进制,共1024位) publicExponent: 65537 (0x10001) privateExponent: 00:d4:e5:f6:...(128字节十六进制,这就是你要的1024位私钥核心) prime1: ... - 复制
privateExponent下的所有十六进制字符,去掉空格和冒号,即可得到连续的1024位私钥十六进制字符串。
方法二:命令行自动提取(高效)
用管道命令直接提取并格式化私钥指数的十六进制:
openssl rsa -in key.pri -text -noout | awk '/privateExponent:/{flag=1;next}/^$/{flag=0}flag' | tr -d ' \n:'
这条命令会自动过滤出私钥指数的内容,去除所有非十六进制字符,直接输出纯1024位的十六进制字符串。
补充说明
- RSA的1024位指的是模数
n的长度,私钥指数d通常也是1024位左右(长度为128字节,对应1024位)。 - 如果需要的是模数
n的十六进制,只需把命令中的privateExponent换成modulus即可。
内容的提问来源于stack exchange,提问作者basangouda46
相关产品推荐
相关产品推荐

