Ответ 1
keys.exportKey()
для закрытого ключа keys.publickey().exportKey()
для открытого ключа. Вы можете изменить формат вывода с помощью аргумента format
, см. docs на этом сайте.
Im, использующий PyCrypto 2.3, и я хотел бы сохранить ключи, которые я сгенерировал в файл, чтобы распространять их на клиент и сервер. Я не могу найти способ правильно напечатать ключи, и я не могу найти примеры в Интернете.
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()
Эти коды не работают по многим причинам: во-первых, keys.publickey()
, похоже, не может быть распечатан, он возвращает:
<_RSAobj @0x10f810d0 n(1024),e>
а во-вторых, keys
не имеет функции с именем privatekey
.
Кто-нибудь сделал это раньше?
keys.exportKey()
для закрытого ключа keys.publickey().exportKey()
для открытого ключа. Вы можете изменить формат вывода с помощью аргумента format
, см. docs на этом сайте.
Следующий фрагмент кода создаст пару ключей RSA и сохранит их в файлах PEM, а также распечатает их.
Оригинальные кредиты: wRAR из этого поста и AJ poultier из [ pyOpenSSL, создающие файл 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)