PyCrypto打印不正确

时间:2017-05-23 03:20:46

标签: python python-3.x encryption pycrypto

嗨,所以在我获得解密后的字符串前面的IV(解密后的值,我相信它是)。现在我没有收到字符串......我怎么做这项工作,现在已经试了好几个小时......

我的代码:

    from Crypto.Cipher import AES
    import hashlib
    import base64
    import os
    import string

    iv = os.urandom(16)
    key = hashlib.sha256(b'mypassword123').digest()
    plaintext = (b'the password is totally not secure')
    cipher = AES.new(key, AES.MODE_CFB, iv)
    ciphertext = iv + cipher.encrypt(plaintext)
    print (ciphertext)
    print ("IV = ",iv)
    ciphertext = ciphertext.split(iv)
    ciphertext = str(ciphertext)[1].strip()
    plaintext = cipher.decrypt(ciphertext)
    print (plaintext)

1 个答案:

答案 0 :(得分:0)

encrypt将更改cipher,您必须更新一个; str会将byte更改为repr(byte),如下所示:

a=b'xxx'
str(a) # "b'xxx'"

from Crypto.Cipher import AES
import hashlib
import base64
import os
import string

iv = os.urandom(16)
key = hashlib.sha256(b'mypassword123').digest()
plaintext = (b'the password is totally not secure')
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = iv + cipher.encrypt(plaintext)
print (ciphertext)
print ("IV = ",iv)
ciphertext = ciphertext.split(iv)
ciphertext = ciphertext[1]
cipher2 = AES.new(key, AES.MODE_CFB, iv)
plaintext = cipher2.decrypt(ciphertext)
print (plaintext)

详细信息请参阅pycrypto