Получение исключения: TypeError: new () отсутствует 1 обязательный позиционный аргумент: 'mode' - PullRequest
0 голосов
/ 14 июля 2020

Я хочу использовать шифрование AES для шифрования моих данных. Я уже делал это раньше, но на моем ноутбуке метод не работает и выдает такую ​​же ошибку. Есть ли способ исправить это? Вот код:

from Crypto.Cipher import AES
def paddedKey(key):
    while len(key)%8!=0:
        key +=' '
    return key
def paddingText(text):
    while len(text)%16!=0:
        text +=' '
    return text
data = paddingText(input('Enter text to encrypt - '))
key = paddedKey(input('Enter key between 16-32 charachters - '))
if(len(key)<=16 & len(key)>=32):
    print('Key must me between 16 and 32 charachters')
cipher = AES.new(key)
ciphertext = cipher.encrypt(data)
# print(ciphertext)
# print(ciphertext.decode('cp855'))
print('Encrypted text = ',ciphertext)

Но этот код выдает ошибку: Traceback (последний вызов последний): File "C: \ Users \ shati \ Desktop \ Python \ Research \ AES_Extended.py ", строка 18, в cipher = AES.new (key) TypeError: new () отсутствует 1 обязательный позиционный аргумент: 'mode'

Я использую версию pythone: Python 3.6.8
Версия Pip: Pip 20.1.1
Версия PycryptoDome: Pycryptodome 3.9.8

1 Ответ

0 голосов
/ 14 июля 2020

Из ошибки очевидно, что для метода new требуются два параметра.

Проверьте это Шифрование и дешифрование с использованием PyCrypto AES 256

Вы должны передать режим параметр функции AES.new.

...