pycryptodome for crypto python pycrypto

python - for - Guardar las claves RSA en un archivo, usando pycrypto



pycrypto python 3.7 windows (2)

El siguiente fragmento de código creará el par de claves RSA y las almacenará en archivos PEM, además de imprimirlas.

Créditos originales: wRAR de esta publicación y AJ poultier de [ pyOpenSSL creando un archivo pem

from Crypto.PublicKey import RSA private_key = RSA.generate(1024) public_key = private_key.publickey() print(private_key.exportKey(format=''PEM'')) print(public_key.exportKey(format=''PEM'')) with open ("private.pem", "w") as prv_file: print("{}".format(private_key.exportKey()), file=prv_file) with open ("public.pem", "w") as pub_file: print("{}".format(public_key.exportKey()), file=pub_file)

Estoy usando PyCrypto 2.3 y me gustaría guardar las claves que he generado en un archivo, para distribuirlas al cliente y al servidor. Parece que no puedo encontrar una manera de imprimir las claves correctamente, y tampoco puedo encontrar ejemplos en Internet.

def resetKeys(self): keys = RSA.generate(1024) privHandle = open(self.privateKeyFile, ''wb'') privHandle.write(keys.privatekey()) privHandle.close() pubHandle = open(self.publicKeyFile, ''wb'') pubHandle.write(keys.publickey()) pubHandle.close()

Estos códigos no funcionan por muchas razones: primero, keys.publickey() no parece ser imprimible, devuelve:

<_RSAobj @0x10f810d0 n(1024),e>

y segundo, las keys no tienen una función llamada privatekey .

¿Alguien ha hecho eso antes?


keys.exportKey() para la clave privada, keys.publickey().exportKey() para la clave pública. Puede cambiar el formato de salida con el argumento de format , consulte los documentos en este sitio .