Quu*_*one 7 openssl pem diffie-hellman
g
我使用某些和参数生成了 Diffie-Hellman 密钥p
,如下所示:
$ cat dhparam.pem\n-----BEGIN DH PARAMETERS-----\nMIIBCAKCAQEAnc5+uXl2K09Nrp1oxN/KbIcIYLg8HXCu9UNW7gFknkHil7OVAKHR\nKm0Dc8IjqhJpDfoNKFoDo2Vd0KB9moSkDmhFmidcXO7Q8zSq0Z4BXFTO61OMukdd\ndul1ovbleqfH4DcbCjH4LiZGICFUyGseiBakt3e2BORyjSA3IEg4hm9WvdCevWPW\nNjc9reFgL6Vua8HkOGkLB+EvRP1YT4v5hGGP/6A7WxRevx5EjF9VgojyDLMPN26C\n3c17KY2jNV0W1GEcKEciWS61QInUDBDPYNuQzTl0LucbOpJyV3BFr6pokRBaO3bI\nZYUPhjA2WSxJUeeJboJfisr+CQa9kc1dYwIBAg==\n-----END DH PARAMETERS-----\n$ openssl genpkey -paramfile dhparam.pem -out dh.pem\n$ cat dh.pem\n-----BEGIN PRIVATE KEY-----\nMIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJ3Ofrl5ditPTa6daMTfymyH\nCGC4PB1wrvVDVu4BZJ5B4pezlQCh0SptA3PCI6oSaQ36DShaA6NlXdCgfZqEpA5o\nRZonXFzu0PM0qtGeAVxUzutTjLpHXXbpdaL25Xqnx+A3Gwox+C4mRiAhVMhrHogW\npLd3tgTkco0gNyBIOIZvVr3Qnr1j1jY3Pa3hYC+lbmvB5DhpCwfhL0T9WE+L+YRh\nj/+gO1sUXr8eRIxfVYKI8gyzDzdugt3NeymNozVdFtRhHChHIlkutUCJ1AwQz2Db\nkM05dC7nGzqScldwRa+qaJEQWjt2yGWFD4YwNlksSVHniW6CX4rK/gkGvZHNXWMC\nAQIEggEEAoIBAGJBY5qzXPRi62hzho+ebCeZMdVqGQrlc9h/1hmrlzXlna8Mu8WF\n0hp/ol8s3AAvuG2w8sMHH/D0kHj2Ptf92khH2WObWAzyybf3IubpVumw6d2KSe1j\nLhW0cJum/lbyhyGJNgdNrVlwyNcId2Z53K9TK1BQnb3/gJjM+cRZ1yyoPDTXZpLl\n1dmLz3lw+kmowyNXtl/wgzDclR16/w7JSvM+tOFCs4X1ZZF9TbQi7czc0ov101gP\nbJjbUaYNOLUQrI/vVEDmCzYIL3PDLV07gQu0FeLHnRChgdjal3xVIsp0oV+2cN7K\n/UX4xqCSBXp8ieAoJ+r7zZD44JqhMVF+d5A=\n-----END PRIVATE KEY-----\n
Run Code Online (Sandbox Code Playgroud)\n\n我的理解是,密钥文件dh.pem
不仅包括密钥的秘密部分,还包括生成密钥的非秘密部分g
和p
参数dh.pem
\xe2\x80\x94 即,是dhparam.pem
.
我想重建dhparam.pem
,仅 dh.pem
给出。也就是说,给定 DH 密钥文件,将其参数转储为 PEM 格式。
看起来它openssl
本身可能不直接支持这一点,但也许有一些不太可怕的方法可以用 shell 脚本或其他东西来提取信息?手册页openssl dhparam
说:
\n\n\n该程序操作 DH 参数而不是键。
\n
\n 错误:应该有一种方法来生成和操作 DH 密钥。
相关:OpenSSL:显示 DH 参数\xe2\x80\x94 但在该问题中,它们以证书开头,而不是私钥。(而且我不知道将我的密钥变成证书的咒语。)
\nPEM文件是 Base64 编码的DER序列化ASN.1文件,带有页眉和页脚保护。具有正确模式的 ASN.1 解析器可以对它们进行解码。碰巧openssl
内置了这个很有帮助的功能:
$ openssl asn1parse <dhparam.pem\n 0:d=0 hl=4 l= 264 cons: SEQUENCE\n 4:d=1 hl=4 l= 257 prim: INTEGER :9DCE7EB979762B4F4DAE9D68C4DFCA6C870860B83C1D70AEF54356EE01649E41E297B39500A1D12A6D0373C223AA12690DFA0D285A03A3655DD0A07D9A84A40E68459A275C5CEED0F334AAD19E015C54CEEB538CBA475D76E975A2F6E57AA7C7E0371B0A31F82E2646202154C86B1E8816A4B777B604E4728D2037204838866F56BDD09EBD63D636373DADE1602FA56E6BC1E438690B07E12F44FD584F8BF984618FFFA03B5B145EBF1E448C5F558288F20CB30F376E82DDCD7B298DA3355D16D4611C284722592EB54089D40C10CF60DB90CD39742EE71B3A9272577045AFAA6891105A3B76C865850F863036592C4951E7896E825F8ACAFE0906BD91CD5D63\n 265:d=1 hl=2 l= 1 prim: INTEGER :02\n\n$ openssl asn1parse <dh.pem\n 0:d=0 hl=4 l= 550 cons: SEQUENCE\n 4:d=1 hl=2 l= 1 prim: INTEGER :00\n 7:d=1 hl=4 l= 279 cons: SEQUENCE\n 11:d=2 hl=2 l= 9 prim: OBJECT :dhKeyAgreement\n 22:d=2 hl=4 l= 264 cons: SEQUENCE\n 26:d=3 hl=4 l= 257 prim: INTEGER :9DCE7EB979762B4F4DAE9D68C4DFCA6C870860B83C1D70AEF54356EE01649E41E297B39500A1D12A6D0373C223AA12690DFA0D285A03A3655DD0A07D9A84A40E68459A275C5CEED0F334AAD19E015C54CEEB538CBA475D76E975A2F6E57AA7C7E0371B0A31F82E2646202154C86B1E8816A4B777B604E4728D2037204838866F56BDD09EBD63D636373DADE1602FA56E6BC1E438690B07E12F44FD584F8BF984618FFFA03B5B145EBF1E448C5F558288F20CB30F376E82DDCD7B298DA3355D16D4611C284722592EB54089D40C10CF60DB90CD39742EE71B3A9272577045AFAA6891105A3B76C865850F863036592C4951E7896E825F8ACAFE0906BD91CD5D63\n 287:d=3 hl=2 l= 1 prim: INTEGER :02\n 290:d=1 hl=4 l= 260 prim: OCTET STRING [HEX DUMP]:028201006241639AB35CF462EB6873868F9E6C279931D56A190AE573D87FD619AB9735E59DAF0CBBC585D21A7FA25F2CDC002FB86DB0F2C3071FF0F49078F63ED7FDDA4847D9639B580CF2C9B7F722E6E956E9B0E9DD8A49ED632E15B4709BA6FE56F287218936074DAD5970C8D708776679DCAF532B50509DBDFF8098CCF9C459D72CA83C34D76692E5D5D98BCF7970FA49A8C32357B65FF08330DC951D7AFF0EC94AF33EB4E142B385F565917D4DB422EDCCDCD28BF5D3580F6C98DB51A60D38B510AC8FEF5440E60B36082F73C32D5D3B810BB415E2C79D10A181D8DA977C5522CA74A15FB670DECAFD45F8C6A092057A7C89E02827EAFBCD90F8E09AA131517E7790\n
Run Code Online (Sandbox Code Playgroud)\n\n鲍勃\xe2\x80\x99是你的叔叔。
\n 归档时间: |
|
查看次数: |
5297 次 |
最近记录: |