Итак, я только что начал экспериментировать с Pycrypto и хотел зашифровать и расшифровать сообщение, но этот код, который я собрал, вызвал некоторые ошибки.Python: ошибка шифрования открытого ключа Pycrypto RSA
Вот они:
enc_data = public_key.encrypt
TypeError: unsupported operand type(s) for pow(): 'str', 'int','int'
ciphertext = cipher.encrypt('Bob')
Traceback (most recent call last):
line 22, in ciphertext = cipher.encrypt('Bob')
File "C:\Anaconda3\lib\site-packages\Crypto\Cipher\PKCS1_OAEP.py", line 50, in encrypt
db = lHash + ps + bchr(0x01) + messageTypeError: can't concat bytes to str
Код:
import Crypto
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto import Random
random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
public_key = key.publickey()
enc_data = public_key.encrypt('Bob', 32)
cipher = PKCS1_OAEP.new(key)
ciphertext = cipher.encrypt('Bob')
Две команды, которые предназначены для шифрования 'Bob' производить эти ошибки, и да я теперь, что первый способ не очень безопасен.
Если объект предназначен для шифрования и дешифрования данных, и нет необходимости, чтобы пара открытого и закрытого ключей использовала симметричное шифрование, такое как AES. Даже при использовании асимметричного шифрования данные обычно шифруются с помощью симметричного шифрования. Асимметричные шифрования, ограниченные размером ключа и ** намного медленнее **, чем симметричное шифрование. – zaph