为了账号安全,请及时绑定邮箱和手机立即绑定

python - 密码学 - 生成新的 RSA 私钥

python - 密码学 - 生成新的 RSA 私钥

小怪兽爱吃肉 2021-10-19 15:17:57
我需要一个函数来生成一个新的 RSA 私钥,然后可以将其作为字符串存储在 Django 模型字段中。我正在使用密码学==2.1.4。我虽然已经通过以下方式实现了这一目标:from cryptography.hazmat.primitives import serializationfrom cryptography.hazmat.primitives.asymmetric import rsafrom cryptography.hazmat.backends import default_backendKEY_SIZE = 2048PUBLIC_EXP = 65537private_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_key_str它总是具有相同的价值。这里有什么建议吗?
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

我用 cryptography==2.1.4 尝试你的代码,我发现它private_key_str不一样。我想也许你没有仔细比较这两个字符串。


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


private_key1


-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAspdHsnVqiY0RFYVAHcqa9AQvZC4u7gGv36wWCEUIlemJx2L7

1UvAbD5b/n/RPp4nw2xTIpSFguC+d4t5IaomQR7WR0aCcWda9SveNk4KyJmnHUox

Z6BBz4vBhdLWLLwZwxGsmuml60Wv5JMVEbf0lDgZqjIBMH0W5hFxa6f3AvI2L2Xf

LzwhfcyDMBIENx47aDFyWwfJvkIotFcLS9gYvo5KQXCdoHMbkoygF2cF+JAfSPEb

HaRw0qCOIDb0pC/L8HUxyiSeGH9eu93KyweRTqoXdkWdmKLYlJHUsdv24xrUxeA3

rARho2flkL/kz6AKO4NJJy+pvDCCtk8PW+HnTwIDAQABAoIBAD8587Yof5lHCf9W

d4aUjhtJyAVtnEvC6SME55/x4MJCNfcTAhlXgj5QLX2Cfu/uSiGTnjMl5caaDpSA

GlhixrxTUIVXXyMK9lbKOxd6tbKjQ1jJRYhsYiA6WD8qj4yy42P+Q99sTMNonocL

02+8cqhu3Bc3MNib0JmPH1p/0qGFy1BsKVUAajiOfFAA8phKyBa1gRON8CtDihLc

oTFfr5b3oaYCBsfA/YYnvf0fEsBrX/xPKVqG5NRVg0dT9op6Z+PBWOZeqSEIk0OV

KNuFTB/xP7oLJgjO6A9upnSHauFZu0sT9UXa9PdTfb8H6zaRwwwqsbCljG0jHUdo

/FcJF8ECgYEA3TbmmkVVX5no6jC1b0bAoWfgqvCLEoBAXEKIbLEYrQ9snfB0bHR8

vS/XydhUvD2Ysf/J+hEHQg8ScQgrOUkkpl2Az88pN17eYIA/i1/yJ6rL2Ju/qOcN

Omo+Zk8sZR3xLt5zXqeNuC7UkuQVg0aQ1JDxszZEkFCf/Wwq64AsoBECgYEAzqyM

UEPwFAj/gL2LM/DFDDnZT2z4NMS6y0rqzHAPcn7hJGjG6dp4o3cEJPM3GObKUT3z

wrzy/Iw6rq7h8DOOHFklt6uAVrrYiFlQ1OSgl/H4a7Ohpi33UjqU3Hy0TFxcBSLy

xNQAcIqSQHxGs42je4JjLiUX4jNor12fm6j7cV8CgYBUGuyAGP5Fk8nHSG+i+B6C

/3Ce7Uei6BoQOceOs6JzIdslDWfmWD+Y2ljLyDEnRLAKdPsA1XqR9hMH4Jg2doW1

rvUrjVLZV3tq6ze9sOPrivdnyoeLGxWfcQd6dH2nkEPDkxYAFeo+7acqlgdL2wdz

mgwbG/XjfJPnkTmcQiY1UQKBgQCAMEPjcRASzTX02xvhPoBpwePIwNT+ndsiRrh1

zze1k37/v0FJQSm8chCO/o/5EQUB+QQdkGbCQBQRzwTyoHePm7eqQWSb5s5xW7yo

H5qARCQKYWNtGGujhBRa4bpO9qZYxUGA1eHj6/8kojCUI9D3xXrQ307+DVbsFozt

1pUGzwKBgEKDzYhr1AQjOysqxthRATj+UTPIODFuhUHH9/RowCa9wCWEEKnpv7Wa

pfmBJd3FkFC4+UQ6b5LyRc4dlMtDh8+GuomUFFPTBrU8oDLzPBZiotIBt1bmd/cq

JsJbimkNvUXY1XY03VajNbAXdsNDUAgbNx00zuOFvD/66Os0hclD

-----END RSA PRIVATE KEY-----

private_key2


-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAxJuI29hhZTLyVx/ePLG30I/DrVMUykeV6QeydwDkxRbI/ZKZ

JhCGyV8NtCyGKHa+vsRjwzzTGgBhpsxMzOwB37liGVlZ/LN0QC5rZ0hR9nVkTted

H8jkMlwV5/R8nMq35yDAdTtWxF2ngM9OLNDRPmyTa7AA0sZLfYYn8UwKTFikfPZ6

XLhb0YoApj6hUDAwKPj4rje3VcxVpLpv/Tfr+Z1qw9YSWCcFdLA89ppQqB0/TfZw

chpCdC5tpmzeucAz2QvuWBe4/LBAJ2vc/Hv4vCztQi2JtN/LJLjfSxdXM1IC4Acu

BqhdQ3sjkHYscp3TTTeVjuhnL+wF4OqtXejK3wIDAQABAoIBAH960gyqisxRcm0n

jrQQD7292gUCf9KBBCTrBr6+55cbpQs2CPNzd9IOPhZ7YCnQhPGw6Xboc4DCio7a

nVmqFbT4wTDqjLybp18OOjnn3K1PhNDSYWEAo2Y760BReJM5pnDI/cGFzkbY6wlM

YcYRR/uP7y6+GmqQhNZJLJD62xqQovMGxFlmqEEjBnru+5Zabbok7DMgzBXE/T/K

dNQC7tfm7KRn3eFxYzAlhUsime0/k4eQGJp+XMsI+SqUYQCkKicI/AgNW6nXsGT/

YMT/B0XDYvT+KCxnhW9pOAof6FbQ8XWrx4VfW73H0TSGtCo4OWi55OoIZDRz/5ff

b7lsAOECgYEA+HVz6heFNAt4v4cTrXHFZFkBlLoAtm/6NRnDBKHbdg6wmnVV3aJ7

Z3YdDSNlvmov5whLKwOLZlI0jONeZnKCaJAz8uOYOF8hoMFehurhsJUfHhQLzZVj

6BD2e62a8R377KFlMIY0JsHWkEwZEQO/KakqdY90xIE7LMTncz9SaHcCgYEAypMx

aCiyzVAXHMVY9rRLa7Iqdot+OnzF86T7RW/F8T5md3y6lJX2Y1HdHxLDYPm1xXBo

gg7Du/Eq/+L24YGJzg+CQs00Z3l5mJxt9OSsjuXqFJQqf9PeJUeNkhdY77xuzBfH

tS2dChmRfwLRqaatYq4RZ4s4tByib/8vjo1RMtkCgYAA5Qth0GveYBwzNF1RxpMb

ZWaoDnNqNMUF4+3b2mlb53mjVMDWZ3tiR/6ayYHYSbGad2Et6nlaCPm/eCIi5E6r

6bkGKuOlcFJCre+VNMtTQ3Y1OYVBXERb1ZPNpjZkn+MEWyBuKE2PxirrohqFASpz

D/TjL30QKBb6dksPEy9MyQKBgQCN7r+pOQq+K6Vl9Se2AvDtDjIOSQIyPIX9hdS/

++Z2dsAYa/3WaZPuVsdVJDJcWdlv8qhmp62gmwMDsqRDsB07kUY1Q825yjTWJpQs

B6SXoqN1s7JrSajV+eJJP66CmkYPHYJBgSoMj4mPsgvwj+XfxBJRuAwMthth2Swa

9wyzUQKBgCp9eBK/0mgEjRr1JacjDVZEcsIcj/erGA2FwoGRu1fXPevi1ggyJIKU

DA+aRZehHqUVOafNQsMJafMqFTTJxYtgkzMRqxfDz6HpNC1hWyvE5/STswEl5Izu

l2QSz4TU1Yk2wnrtDlIVkb6gM/JkQiOkSG5PSx9EAACZ1Yoz+NqS

-----END RSA PRIVATE KEY-----


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信