【发布时间】:2019-08-20 15:49:47
【问题描述】:
我试图更好地理解如何在 Python 中使用加密库,但我一直坚持使用 CBC 进行看似非常简单的 DES 加密/解密
from Crypto.Cipher import DES
obj=DES.new('abcdefgh', DES.MODE_CBC, '12345678')
plain='hellohello'
ciph=obj.encrypt(plain + "XXXXXX")
print(ciph)
print(obj.decrypt(ciph))
使用 ECB 时,上述操作很容易,但使用 CBC,输出会打乱前 8 个字符块。
这里的输出是:
b'{\x03\x1ca\xe3e\xa2\xd4<DEh\x10 \xf63'
b'e\x13\x1a0J~\xa4gloXXXXXX'
我在 pycrypto 的文档中没有看到这一点,但我承认,我没有仔细研究过它。
为什么第一个区块会这样被打乱?
【问题讨论】: