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 .