I seem to have misunderstood something about the way Crypto.Cipher is supposed 
to work, because I'm getting unexpected results, here is my code..

import hashlib
from Crypto.Cipher import AES
from Crypto import Random

h = hashlib.new('sha256')
h.update('my key')
key = h.digest()

iv = Random.new().read(AES.block_size)
cipher = AES.new(key, AES.MODE_CFB, iv)
txt = 'hello world'

# This is the part where I'm confused, because it seems like encrypt will 
output a different result every time, so how can I decrypt it?

msg = cipher.encrypt(txt)

>>> '|s\x08\xf2\x12\xde\x8cD\xe7u*'

msg = cipher.encrypt(txt)

>>> '\xa1\xed7\xb8h<l\x7f\xd7\xba\xed'

# etc
# it works like I would expect the first time when decrypting, if I follow the 
example from pycrypto docs:

msg = iv + cipher.encrypt(txt)
cipher.decrypt(iv + msg)

>>> '\x0b\xd9\x9f0\xd1\xb9E\x81;\x8a\xd4\xff\xdb\xd4\x83\x84\xbd$=\xf3\xaf@a8t\xd8Bz<\xce\xe26hello
>>>  world'

# But it does not work subsequently:

msg = iv + cipher.encrypt(txt)
cipher.decrypt(iv+msg)

>>> '\xfb\xa1\xa8\x9e"L<\x10Rg\xb5f^\x8a\x17\xfd\xbd$=\xf3\xaf@a8t\xd8Bz<\xce\xe26\xde\xc6cD\xdal\'\xf3@(\xa6'

What am I doing wrong?
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to