1

我正在使用 python Cryptography 模块,并且使用文档中的示例生成了私钥和公钥。我遇到的问题是我希望能够生成不同的密钥对。就像我生成一个,但每次运行它时总是生成同一个。我已经尝试尽可能多地阅读文档,但找不到任何解决此问题的方法。谢谢。

4

1 回答 1

1

实际上我前一段时间就这样做了,所以我将复制/粘贴我的解决方案:)

import os
from Cryptodome.PublicKey import RSA
from Cryptodome import Random

def generate_keypair(bits=2048):
    random_generator = Random.new().read
    rsa_key = RSA.generate(bits, random_generator)
    return rsa_key.exportKey(), rsa_key.publickey().exportKey()

要生成随机密钥,您必须在 RSA.generate 中包含一个随机生成器。


更具人类可读性:

from Cryptodome.PublicKey import RSA
from Cryptodome import Random

def generate_keypair(bits=2048):
    random_generator = Random.new().read
    rsa_key = RSA.generate(bits, random_generator)
    print(repr(rsa_key))
    print(repr(rsa_key.publickey()))

generate_keypair()
于 2017-12-09T00:50:10.240 回答