파이썬 암호화 모듈을 사용하고 있으며 문서의 예제를 사용하여 개인 키와 공개 키를 생성했습니다. 문제는 다른 키 쌍을 생성 할 수 있기를 원한다는 것입니다. 하나 생성하지만 항상 실행할 때마다 생성되는 것과 항상 동일합니다. 나는 설명서만큼 캠을 읽었지만이 문제에 대한 해결책을 찾지 못했습니다. 감사.파이썬 암호화 랜덤 키 생성
답변
실제로 얼마 전에, 그래서 난/내 솔루션 :
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에서 임의의 발전기를 포함해야, 임의의 키를 genarate하기를 붙여 복사 단지 거라고했다.
조금 더 사람이 읽을 수 : 시드에 대한 설정
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()
정확히 입력 한 내용을 복사하여 붙여 넣었으며 같은 키를 계속 가져 왔습니다./ – orosmatthew
오, 미안하지만, 그냥 가까이서 보지 않았습니다. 충분하게, 나는 단지 처음의 소수의 성격을 보았고, didnt는 그것이 나중에 바뀐다는 것을 안다. 감사! – orosmatthew
오, 그래, .exportKey()는 좀 더 비밀스럽고 읽기 어렵게 만듭니다. 그러나 나는 내 프로그램에 도움이되었다. – Pat
확인합니다. 항상 알고리즘을 다르게 뿌리는지 확인하십시오. – Steephen
간단한 답 일지는 묻지 않지만 어떻게 할 것인지 물어 보는 것은 싫어요. 그게 내가 가지고있는 문제인 것 같다. 문서를 검색했지만 찾지 못했다. – orosmatthew
문서를 참조하여 'seed'또는 이와 유사한 기능을 확인하십시오. 보통이 함수에 현재 시간을 전달합니다. – Steephen