pycryptodome包运行在python 3.8上,用于在ECB模式下加密和解密AES 128

2024-07-01 08:07:34 发布

您现在位置:Python中文网/ 问答频道 /正文

虽然我对加密和解密知之甚少,但我正在尝试我的手

我偶然发现了一个文档Doc,但主要是在python2.7上 而且图书馆也被改变了

我正在我的机器上运行python 3.8。我正在使用的库是“pycryptodome”

我正在尝试运行下面的代码,这是库“pycrypto”的代码

from Crypto.Cipher import AES
 
key = 'assignmentToSetu'
 
cipher = AES.new(key, AES.MODE_ECB)
msg =cipher.encrypt('TechTutorialsX!!TechTutorialsX!!')
print (type(msg))
 
print(msg.encode("hex"))
 
decipher = AES.new(key, AES.MODE_ECB)
print(decipher.decrypt(msg))

我觉得我正在使用的库有一个错误

错误:

 cipher = AES.new(key, AES.MODE_ECB)
  File "D:\work\scrap\billFetch\Crypto\Cipher\AES.py", line 232, in new
    return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
  File "D:\work\scrap\billFetch\Crypto\Cipher\__init__.py", line 79, in _create_cipher
    return modes[mode](factory, **kwargs)
  File "D:\work\scrap\billFetch\Crypto\Cipher\_mode_ecb.py", line 216, in _create_ecb_cipher   
    cipher_state = factory._create_base_cipher(kwargs)
  File "D:\work\scrap\billFetch\Crypto\Cipher\AES.py", line 103, in _create_base_cipher        
    result = start_operation(c_uint8_ptr(key),
  File "D:\work\scrap\billFetch\Crypto\Util\_raw_api.py", line 232, in c_uint8_ptr
    raise TypeError("Object type %s cannot be passed to C code" % type(data))
TypeError: Object type <class 'str'> cannot be passed to C code

有人能帮我解决这个问题吗


Tags: keyinpynewcreatelinemsgcrypto

热门问题