gpt4 book ai didi

python - 创建 RSA SHA-256(DNSSEC 有效) key ?

转载 作者:行者123 更新时间:2023-11-28 18:45:51 25 4
gpt4 key购买 nike

我想在 Python 中为 DNSSEC 创建我自己的 RSA/Sha256 key 生成器。我知道已经有一个内置的 key 生成器 (dnssec-keygen),但我想自己构建它。

接受的 key 如下所示:

Private-key-format: v1.2

Algorithm: 8 (RSASHA256)
Modulus: wVwaxrHF2CK64aYKRUibLiH30KpPuPBjel7E8ZydQW1HYWHfoGm
idzC2RnhwCC293hCzw+TFR2nqn8OVSY5t2Q==
PublicExponent: AQAB
PrivateExponent: UR44xX6zB3eaeyvTRzmskHADrPCmPWnr8dxsNwiDGHzrMKLN+i/
HAam+97HxIKVWNDH2ba9Mf1SA8xu9dcHZAQ==
Prime1: 4c8IvFu1AVXGWeFLLFh5vs7fbdzdC6U82fduE6KkSWk=
Prime2: 2zZpBE8ZXVnL74QjG4zINlDfH+EOEtjJJ3RtaYDugvE=
Exponent1: G2xAPFfK0KGxGANDVNxd1K1c9wOmmJ51mGbzKFFNMFk=
Exponent2: GYxP1Pa7CAwtHm8SAGX594qZVofOMhgd6YFCNyeVpKE=
Coefficient: icQdNRjlZGPmuJm2TIadubcO8X7V4y07aVhX464tx8Q=

https://www.rfc-editor.org/rfc/rfc5702

我的 Python 脚本可以生成 RSA 部分,但我不知道如何将它与 SHA256 混合:

#!/usr/bin/python

from Crypto.PublicKey import RSA
from Crypto.Hash import SHA256
import base64
import hashlib

key = RSA.generate(2048)

expo1 = ((key.d)%((key.p)-1))
expo2 = ((key.d)%((key.q)-1))

KEYVORLAGE = """Private-key-format: v1.2
Algorithm: 8 (RSASHA256)
Modulus: {0}
PublicExponent: {1}
PrivateExponent: {2}
Prime1: {3}
Prime2: {4}
Exponent1: {5}
Exponent2: {6}
Coefficient: {7}"""

keystring = KEYVORLAGE.format(key.n,key.e,key.d,key.p,key.q,expo1,expo2,key.u)
print keystring

顺便说一句:我所有由这个脚本生成的 key 部分只有数字而不是随机字母,就像有效 key 一样。

最佳答案

(OP 回答了问题,but in the question itself。以下文本的副本。)

答案很简单——通过修改键串:

keystring = KEYVORLAGE.format( 
base64.standard_b64encode(str(key.n)),
base64.standard_b64encode(str(key.e)),
base64.standard_b64encode(str(key.d)),
base64.standard_b64encode(str(key.p)),
base64.standard_b64encode(str(key.q)),
base64.standard_b64encode(str(expo1)),
base64.standard_b64encode(str(expo2)),
base64.standard_b64encode(str(key.u)))

关于python - 创建 RSA SHA-256(DNSSEC 有效) key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20324108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com