以下代码给了我错误“参数2必须是字节,而不是字节数组”。除了一些仅将一个参数传递给该方法的示例代码外,我找不到有关crypto_and_digest的任何文档。有人知道这是什么问题吗?谢谢。
key = rb(16)
cipher = AES.new(key, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(b'hello')
答案 0 :(得分:0)
我在以下代码中将错误源追溯到第三行
partial = self._cache[:]
partial[self._cache_n:] = b'\x80' + b'\x00' * (bs - self._cache_n - 1)
pt = strxor(strxor(self._last_ct, partial), self._k2)
函数摘要中的在python3.7 / site-packages / Crypto / Hash / CMAC.py文件中。 该错误是关于第二个自变量partial,它是一个字节数组。当我将第三行修改为以下内容时,错误消失了。
pt = strxor(strxor(self._last_ct, bytes(partial)), self._k2)
答案 1 :(得分:0)
很可能您已经安装了pycryptodome和旧的pycrypto软件包。
运行“ pip卸载pycrypto”,然后重试。
有关更多详细信息,请参见 https://pycryptodome.readthedocs.io/en/latest/src/faq.html