Generate RSA private key from n, e, d, p, q values in bash with OpenSSL
本问题已经有最佳答案,请猛点这里访问。
我已经计算出RSA密钥的n,e,d,p,q值。
现在,如何使用openssl命令行工具生成私钥文件(pem或der)?
我在想
1 | openssl asn1parse -genconf asn1.cnf -noout -out asn1.der |
但是我不明白如何建立conf文件。
asn_generate_nconf的OpenSSL联机帮助页随附示例cnf,用于生成应该与cmdline一起使用的private_key ASN.1序列:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | asn1=SEQUENCE:private_key [private_key] version=INTEGER:0 n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\ D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 e=INTEGER:0x010001 d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\ F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\ D4BD57 q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\ 46EC4F exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\ 9C0A39B9 exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\ E7B2458F coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\ 628657053A |
作为替代方案,rsatool.py可以使用简单的cmdline生成base64编码的ASN.1
1 2 | #>python rsatool.py -n <n> -p <p> -q <q> -e <e> -v PEM -o privkey.pem |
或用于ASN.1 der中的输出:
1 2 | #>python rsatool.py -n <n> -p <p> -q <q> -e <e> -v DER -o privkey.key |