Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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私钥_Python_Python 3.x_Cryptography_Rsa_Python Cryptography - Fatal编程技术网

python-加密-生成新的RSA私钥

python-加密-生成新的RSA私钥,python,python-3.x,cryptography,rsa,python-cryptography,Python,Python 3.x,Cryptography,Rsa,Python Cryptography,我需要一个函数,生成一个新的RSA私钥,然后可以作为字符串存储在Django模型字段中。 我正在使用 我认为我通过以下方式实现了这一点: from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.backends import default_backend KEY_SIZE

我需要一个函数,生成一个新的RSA私钥,然后可以作为字符串存储在Django模型字段中。 我正在使用

我认为我通过以下方式实现了这一点:

from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.backends import default_backend

KEY_SIZE = 2048
PUBLIC_EXP = 65537
private_key = rsa.generate_private_key(
    public_exponent=PUBLIC_EXP,
    key_size=KEY_SIZE,
    backend=default_backend()
)
private_key_str = private_key.private_bytes(
    encoding=serialization.Encoding.PEM,
    format=serialization.PrivateFormat.TraditionalOpenSSL,
    encryption_algorithm=serialization.NoEncryption()
).decode()
但很明显,我在这里遗漏了一些东西或某些步骤(尽管我应该知道为什么…),因为
private\u key\u str
始终具有相同的值


这里有什么建议吗?

我尝试了你的密码==2.1.4,我发现
私钥str
不一样。我想也许你没有仔细比较这两个字符串

它们都使用PEM编码的PKCS#1结构来编码密钥,因此它们的结构相似

私钥1

----开始RSA私钥-----
MIIEowIBAAKCAQEAspdHsnVqiY0RFYVAHcqa9AQvZC4u7gGv36wWCEUIlemJx2L7
1VABD5B/n/RPp4nw2xTIpSFguC+d4t5IaomQR7WR0aCcWda9SveNk4KyJmnHUox
Z6BBZ4VBHDLWLWZWXGSMUML60WV5JMVEBF0LDGZQJIBMH0W5HFXA6F3AVI2L2XF
LzwhfcyDMBIENx47aDFyWwfJvkIotFcLS9gYvo5KQXCdoHMbkoygF2cF+JAfSPEb
HaRw0qCOIDb0pC/L8HUXYISEGH9EU93KYWERTQOXDKWDMKLYLJHUDV24xRUXEA3
rARho2flkL/kz6AKO4NJJy+pvDCCtk8PW+HnTwIDAQABAoIBAD8587Yof5lHCf9W
d4aUjhtJyAVtnEvC6SME55/x4MJCNfcTAhlXgj5QLX2Cfu/uSiGTnjMl5caaDpSA
GLHIXRXTIVXXYMK9LBKOXD6TBKJQ1JJRYHSYIA6WD8QJ4YY42P+Q99STMNOOCL
02+8CQHU3BC3MINB0JMPH1P/0QGFY1BSKvuaajiofaa8PHKYBA1GRON8CTDIHLC
oTFfr5b3oaYCBsfA/YYnvf0fEsBrX/xPKVqG5NRVg0dT9op6Z+PBWOZeqSEIk0OV
KNuFTB/XP7OLJGJO6A9UPNSHAUFZU0ST9UXA9PDTFB8H6ZARWWQSBCLJG0JHUDO
/FcJF8ECgYEA3TbmmkVVX5no6jC1b0bAoWfgqvCLEoBAXEKIbLEYrQ9snfB0bHR8
vS/XydhUvD2Ysf/J+hEHQg8ScQgrOUkkpl2Az88pN17eYIA/i1/yJ6rL2Ju/qOcN
Omo+Zk8sZR3xLt5zXqeNuC7UkuQVg0aQ1JDxszZEkFCf/Wwq64AsoBECgYEAzqyM
UEPwFAj/gL2LM/DFDDNZT2Z4NMS6Y0RQZHAPCN7HJGG6DP4O3EJPM3GOBKUT3Z
wrzy/IW6RQ7H8DOOHFKLT6UAVRYFLQ1OSGL/H4a7Ohpi33UjqU3Hy0TFxcBSLy
xNQAcIqSQHxGs42je4JjLiUX4jNor12fm6j7cV8CgYBUGuyAGP5Fk8nHSG+i+B6C
/3ce7ue6boxocos6jzidsldwfmwd+y2ljlydenrrakdpsa1xqr9hmh4jg2dow1
RVURJVLZV3TQ6ZE9SOPRIVDNYOLGXWFCQD6DH2NKEPDKXYAFEO+7acqlgdL2wdz
mgwbG/XJFJPNKTMCQ1QBgQCAMEPJCRASSTX02X02xVHPOBPWEPIWNT+NDSIRH1
zze1k37/v0FJQSm8chCO/o/5EQUB+QDKGBCQBQRZWTYOHEPM7EQWSB5XW7YO
H5qARCQKYWNtGGujhBRa4bpO9qZYxUGA1eHj6/8kojCUI9D3xXrQ307+DVbsFozt
1 PUGZWKBGEKDZYHR1AQJOYSQXTHRATJ+UTPIODFuhUHH9/RowCa9wCWEEKnpv7Wa
pfmBJd3FkFC4+UQ6b5LyRc4dlMtDh8+GUMUFPTBRU8ODLZPBZIOTIBT1BMD/cq
JSJBIMKNVuxy1xy03VAJNBAXDSNDDUAGBNX00ZOUOFVD/66Os0hclD
-----结束RSA私钥-----
私钥2

----开始RSA私钥-----
MIIEowIBAAKCAQEAxJuI29hhZTLyVx/ePLG30I/DrVMUykeV6QeydwDkxRbI/ZKZ
JhCGyV8NtCyGKHa+vsRjwzzTGgBhpsxMzOwB37liGVlZ/LN0QC5rZ0hR9nVkTted
H8jkMlwV5/R8NMQ35YDADTWXF2NGM9OLNDRPMYTA7AA0SZLFYYN8UWKTFIKFPZ6
XLhb0YoApj6hUDAwKPj4rje3VcxVpLpv/Tfr+Z1QW9YSWCCFDLA89PPQB0/TfZw
chpCdC5tpmzeucAz2QvuWBe4/LBAJ2vc/Hv4vCztQi2JtN/LJLjfSxdXM1IC4Acu
BQHDQ3SJKHYSCP3TTEVJUHNL+WF4OQTXEJK3WIDAKABAOIBAH960GYQISXRCM0N
JRQD7292GUCF9KBBCTRBR6+55cbpQs2CPNzd9IOPhZ7YCnQhPGw6Xboc4DCio7a
NVMQFBT4WTDQJLYBP18OOJNN3K1HNDSYW2Y760BREJM5PNDI/cGFzkbY6wlM
YcYRR/uP7y6+GMQHNZJLJD62XQQOVMGXFLMQEEJBNRU+5Zabbok7DMgzBXE/T/K
dNQC7tfm7KRn3eFxYzAlhUsime0/k4eQGJp+XMsI+SqUYQCkKicI/AgNW6nXsGT/
YMT/B0XDYvT+KCxnhW9pOAof6FbQ8XWrx4VfW73H0TSGtCo4OWi55OoIZDRz/5ff
b7lsAOECgYEA+HVz6heFNAt4v4cTrXHFZFkBlLoAtm/6NRNDBKHBDG6WMNV3AJ7
Z3YDDSNLVMOV5WHLKWOLZLI0JONEZNKCAJAZ8UOYOF8HOMFEHURHSJUFHQLZVJ
6BD2e62a8R377KFlMIY0JsHWkEwZEQO/KakqdY90xIE7LMTncz9SaHcCgYEAypMx
aCiyzVAXHMVY9rRLa7Iqdot+OnzF86T7RW/F8T5md3y6lJX2Y1HdHxLDYPm1xXBo
gg7Du/Eq/+L24YGJzg+CQs00Z3l5mJxt9OSsjuXqFJQqf9PeJUeNkhdY77xuzBfH
TS2DCHRFWLRQAATYQ4RZ4S4TBYB/8vjo1RMtkCgYAA5Qth0GveYBwzNF1RxpMb
ZWaoDnNqNMUF4+3b2mlb53mjVMDWZ3tiR/6ayYHYSbGad2Et6nlaCPm/eCIi5E6r
6BkgKULCFJCRE+VNMtTQ3Y1OYVBXERb1ZPNpjZkn+MEWYBUKE2PXIRROHQFAPSZ
D/TjL30QKBb6dksPEy9MyQKBgQCN7r+pOQq+K6VL9SE2AVTDJIOSQIYPIX9HDS/
++Z2dsAYa/3WAZPUVSDVJDJCWDLV8QHMP62GWMDSQRDSB07KUY1Q825YJTWJPQS
B6SXOQN1S7JRSAV+EJP66CMKYPHYJBGSOMJ4MPSGWJ+XFXBJRUAWMTH2SWA
9wyzUQKBgCp9eBK/0mgEjRr1JacjDVZEcsIcj/erGA2FwoGRu1fXPevi1ggyJIKU
DA+aRZehHqUVOafNQsMJafMqFTTJxYtgkzMRqxfDz6HpNC1hWyvE5/STswEl5Izu
l2QSz4TU1Yk2wnrtDlIVkb6gM/JkQiOkSG5PSx9EAACZ1Yoz+NqS
-----结束RSA私钥-----

您看到的是使用DER编码规则编码的ASN.1结构。如果您想了解其中的内容,请查看并将页眉和页脚行中的base 64粘贴到输入字段中。威勒,我已经重新格式化了你的答案,请看一下编辑(点击我名字上方的“已编辑的xxx ago”),以备将来参考。请注意,标记中不显示单输入,请使用空格、空格、enter或双输入来添加换行符/新段落。@MaartenBodewes您的参考站点允许复制整数吗?@kelalaka复制最多也很棘手。我正在考虑获取源代码并重新编写它。若我并没有弄错的话,所有的事情都是在浏览器中执行的(尽管它显然也是作为GET请求发送到服务器的,所以当然不要将它用于您的活动密钥)。对于复制内容,您还可以使用
openssl asn1parse
,可能还可以使用
-d
“dump”选项。我无法复制整个整数。关键部分,而不是我的关键:),来自张贴的问题。@MaartenBodewes我看到了你的编辑,它很有帮助,非常感谢