我想通过使用 PyCryptodome 包在 python 中的 DES 算法中使用 CTR 模式。我的代码出现在这篇文章的末尾。但是我收到了这个错误:“TypeError:不可能为短块大小创建一个安全的随机数”。值得一提的是,此代码适用于 AES 算法,但不适用于 DES、DES3、Blowfish 等(64 块大小)。据我所知,CTR 模式可以应用于 64 块密码算法。
from Crypto.Cipher import DES
from Crypto.Random import get_random_bytes
data = b'My plain text'
key = get_random_bytes(8)
cipher = DES.new(key, DES.MODE_CTR)
ct_bytes = cipher.encrypt(data)
nonce = cipher.nonce
cipher = DES.new(key, DES.MODE_CTR, nonce=nonce)
pt = cipher.decrypt(ct_bytes)
print("The message was: ", pt)
非常感谢。