Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否创建RSA SHA-256(DNSSEC有效)密钥?_Python_Rsa_Sha - Fatal编程技术网

Python 是否创建RSA SHA-256(DNSSEC有效)密钥?

Python 是否创建RSA SHA-256(DNSSEC有效)密钥?,python,rsa,sha,Python,Rsa,Sha,我想用Python为DNSSEC创建自己的RSA/Sha256密钥生成器。 我知道已经有一个内置的keygen(dnssec keygen),但我想建立自己的 接受的密钥如下所示: 私钥格式:v1.2 算法:8(RSASA256) 模数:WVWAXRHF2CK64AYKRUIBLIH30KPUPBJEL7E8ZYDQW1HYWHFOGM idzC2RnhwCC293hCzw+TFR2nqn8OVSY5t2Q== 公众指数:AQAB 私有指数:UR44xX6zB3eaeyvTRzmskHADrPC

我想用Python为DNSSEC创建自己的RSA/Sha256密钥生成器。 我知道已经有一个内置的keygen(dnssec keygen),但我想建立自己的

接受的密钥如下所示:

私钥格式:v1.2
算法:8(RSASA256)
模数:WVWAXRHF2CK64AYKRUIBLIH30KPUPBJEL7E8ZYDQW1HYWHFOGM
idzC2RnhwCC293hCzw+TFR2nqn8OVSY5t2Q==
公众指数:AQAB
私有指数:UR44xX6zB3eaeyvTRzmskHADrPCmPWnr8dxsNwiDGHzrMKLN+i/
HAam+97HxIKVWNDH2ba9Mf1SA8xu9dcHZAQ==
底漆1:4c8IvFu1AVXGWeFLLFh5vs7fbdzdC6U82fduE6KkSWk=
底漆2:2zZpBE8ZXVnL74QjG4zINlDfH+EOETJJ3RTAYDUGGE=
指数1:G2XAPFK0KGXGANDVNxD1K1C9WOMMJ51MGBZKFFNMFK=
指数2:GYxP1Pa7CAwtHm8SAGX594qZVofOMhgd6YFCNyeVpKE=
系数:icQdNRjlZGPmuJm2TIadubcO8X7V4y07aVhX464tx8Q=

我的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
顺便说一句:这个脚本生成的所有我的关键部分都只有数字,而不是随机字母,就像有效的关键一样。

(问题由OP回答,。下面文本的副本。)

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

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)))
我的建议是:

#!/usr/bin/python

import ldns

dnskey = ldns.ldns_key.new_frm_algorithm(ldns.LDNS_RSASHA256, 2048)
print(str(dnskey))
Private-key-format: v1.2
Algorithm: 8 (RSASHA256)
Modulus: tZqeHDj2fvrGZrrZ+t+8lJmbKijaBjyeKg+8ccWl6XuEolbP/L+0UaV6TOEzWOIPuA/4bGEUYJF0/ITY3s/m2X1Zaf5Tcr7OwbIGg8JlBB+WrJ1pd0n48vg1ivdh27OvTehwNA+dx04V0NN1oCF0aGGv0XoIhVpLu8NgMjs3K0ZWtwUGFhRYpSKKkdZXf08GolpnnjMS/WMEEPDWEUAEv5T2ys9EhVNc3zm2eE+kNxtrF3ueldz8JPZHxJbm2H50mYPSvQsIXFxjdMPErYvs6Xixa/YtucCHwLmpYRxSESlnxZ5AhcusxiiyCyxsF63yd3MpoI5C1X//xEhr6OB2iw==
PublicExponent: AQAB
PrivateExponent: A2AGRDwCyMVcXphmaLUzygc4zQXJV4hU4C8+r1afCMHU6zd10hq1/TZ4GWmuDJ7W7/LMCSecu1a4t+C4LxvqDGy59rBVWLKXIR5v5I7+VZ9Iq5iZVzA2wj0+sYB7fxvNzELfovgPVJ7s5N6pNvqoMTBvlhMQiXnuImU1KnnTQqiZ+Iegcc4v6R+WoJVysjVxcGa4gdjD5yiZej+gPGHMCJqUur4utYDb01p0VOm15gAbBiRQDhnS1xXLbyKv8svLr/NI1jEpkDeuLU7LbZJLFVB52YSZgRTfqAlKUY9oB7KHY4wjA8SxxqRBQ1gcEsAogSSasOhjLTuy6EnQ3RN4kQ==
Prime1: 5Pwr5q3MJshI1Jpy+XSQeP2zCNe1lgiqqiUmRWkpe02qUWovoGLdSQjfsyiS1Al4uj/TddNWoXHerUMCZgJ+3Q5SvrieHpJwsAfQH72a06FeBjbbf0xod4Jrs14zUeB1a0aNB+v6bI5CGkbTIh2339LcfYyWG8dw6t8iANLMb1c=
Prime2: ywdwP3liUR1FYC0ttmPU6A215FS5pwIQ6e09pGlygjbv1JmZ3w0dGhkhVJL8iZ5KnrcCEzwI44vdfAtu3QDt1c+Bn0RSD8BpTlTJdBkyHfzzwDoN2w1sFe/rGfvSYyncHNkf0Mqj8pdQ9tpW46XXH2aP+zVfH5FyrX0rOHSW1e0=
Exponent1: QamSSTbjSOe8AsM7Xw8u8pMFiO6aUqivj9TRUawjSgluYqRJfft7qxrRUwW6fPUuWnI9CBePSwJlMVf60xe6G1elIK2+IdQqXkAPTVrIkBFA7hVDAhD+D+8lRS0pGDx+T0HO5Uuk5wYwLGrM1oahGJzVv2bWEKczWRadIJFSMEc=
Exponent2: fRUAGpr173NRIoey+gNXT//iZ+Gq3zFuqi/3Iiu02HRwHVLkcX7qxwFkf25vF3nmDxJAvQjnkQjCU4HXs2C3JlrJSQ4WYI3yUsf5tQUw0zjcEzmw/5utU3aUKVXzsBRB/6Pk7gVqLDL9Npgdn/K0LixJ2EJxcElzlV7gGc/6faE=
Coefficient: 11MhOHYowmSXQGZhv4cJk9ZYupHuGbzqj+qv10xOuFWbvPGnkKAmuxUJ5MeYhFS/rZQ+VjroDh0sAPe7ycX1lyyn2KWH8/92tVoy77pnJvWyxBxZCKWFK2p1rGOfxhCjyyzOlQ071uv0CeloK1lsvlE9tJgseCcP4QQr9Qec6gA=

e、 g.在debian(buster)下使用时,您需要安装软件包
python3 ldns

如果您有答案,请不要编辑您的问题。将其添加为答案并接受以关闭问题。我已编辑您的问题以删除您的答案。我将在下面发布一个CW答案,但请随意添加您自己的答案(如果您希望获得一些声誉),并让我知道,我将删除我的答案。