python 3des加密_python – 使用3DES和CBC破坏我的加密数据的前8个字节
我在應用程序中使用PyCrypto來加密數據,但由于某種原因,無論我做什么,前8個字節(對應于第一個塊)都會損壞.
>>> 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'
我已經讀到這是IV已損壞的跡象,但是這些消息來源還說使用CBC以外的模式會導致整個消息損壞.情況并非如此:
>>> 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個字節已損壞,這對應于AES的塊大小.
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python 3des加密_python – 使用3DES和CBC破坏我的加密数据的前8个字节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opython3l_Python从小白到
- 下一篇: python dtype什么意思_Dat