python 3des加密_python – 使用3DES和CBC破坏我的加密数据的前8个字节
我在應(yīng)用程序中使用PyCrypto來加密數(shù)據(jù),但由于某種原因,無論我做什么,前8個字節(jié)(對應(yīng)于第一個塊)都會損壞.
>>> from Crypto.Cipher import DES3
>>> from Crypto import Random
>>> iv = Random.new().read(DES3.block_size)
>>> key = Random.new().read(DES3.key_size[-1])
>>> des3 = DES3.new(key, DES3.MODE_CBC, iv)
>>> des3.decrypt(des3.encrypt('12345678abcdefgh12345678'))
't\x1b\x0f\xcbD\x15M\xababcdefgh12345678'
我已經(jīng)讀到這是IV已損壞的跡象,但是這些消息來源還說使用CBC以外的模式會導(dǎo)致整個消息損壞.情況并非如此:
>>> des3 = DES3.new(key, DES3.MODE_CFB, iv)
>>> des3.decrypt(des3.encrypt('12345678abcdefgh12345678'))
'\xe1\x85\xae,\xf1m\x83\x9cabcdefgh12345678'
我也可以排除密碼的原因:
>>> from Crypto.Cipher import AES
>>> from Crypto import Random
>>> iv = Random.new().read(AES.block_size)
>>> key = Random.new().read(AES.key_size[-1])
>>> aes = AES.new(key, AES.MODE_CBC, iv)
>>> aes.decrypt(aes.encrypt('12345678abcdefgh12345678abcdefgh'))
'\xa7l\x00]\x1cW\xec\xd0\x04\x06\xba&\x1663\xd712345678abcdefgh'
請注意,在此示例中,前16個字節(jié)已損壞,這對應(yīng)于AES的塊大小.
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python 3des加密_python – 使用3DES和CBC破坏我的加密数据的前8个字节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opython3l_Python从小白到
- 下一篇: python dtype什么意思_Dat