带有加密的 Python AES ECB 模式

时间:2021-04-26 11:04:14

标签: python encryption cryptography aes

我尝试为一些使用 AES ECB 的旧硬件实现一些加密。

但如果我只解密消息,它就不起作用。

from Crypto.Cipher import AES
import binascii

key = b'ABCDEFGHIJIKLMOP'
#cipher = AES.new(key.encode("utf8"), AES.MODE_ECB)
#msg = cipher.encrypt(b'a4dd23fff740b203efe19d5cbbc24bba')
msg = (b'AAAAAAAAAAAAAAAA')
#print(type(msg))
#print(msg.hex())
cipher = AES.new(key, AES.MODE_ECB)


msg_en = cipher.encrypt(msg)
print("       ")
print(binascii.hexlify(msg_en))
#print(type(msg_en))

print("--------")
decipher = AES.new(key, AES.MODE_ECB)

msg_dec = decipher.decrypt(msg_en)
print(msg_dec)
print(binascii.hexlify(msg_dec))
#print(type(msg_dec))
Output : b'75ce1408b210410124729691da93c439'
         --------
         b'AAAAAAAAAAAAAAAA'
         b'41414141414141414141414141414141'

如果我用原始加密消息替换解密,我会得到这个:

print("--------")
decipher = AES.new(key, AES.MODE_ECB)

msg_dec = decipher.decrypt(b"75ce1408b210410124729691da93c439")
print(msg_dec)
print(binascii.hexlify(msg_dec))
#print(type(msg_dec))

Output:
      b'75ce1408b210410124729691da93c439'
      --------
      b'\xed}\xcc\xbbI\xae\x11su\xea\xbc9s|\xb2\xc8\x94\x00\xb9\x93\xe4\xdf\xaf\xb8\xffU\xfc\xccS\r'
      b'ed7dccbb49ae117375eabc39737cb2c89400b993e4dfafb8ff552ffc49cc530d'

我不明白。

1 个答案:

答案 0 :(得分:0)

好的,感谢 Michael Fehr。

解决方案:

from Crypto.Cipher import AES
import binascii


key = b'ABCDEFGHIJIKLMOP'
#cipher = AES.new(key.encode("utf8"), AES.MODE_ECB)
#msg = cipher.encrypt(b'a4dd23fff740b203efe19d5cbbc24bba')
msg = (b'AAAAAAAAAAAAAAAA')
#print(type(msg))
#print(msg.hex())
cipher = AES.new(key, AES.MODE_ECB)


msg_en = cipher.encrypt(msg)
print("       ")
print(binascii.hexlify(msg_en))
#print(type(msg_en))

print("--------")
decipher = AES.new(key, AES.MODE_ECB)

msg_dec = decipher.decrypt(binascii.unhexlify(b"75ce1408b210410124729691da93c439")) # Decipher akzeptiert und Binary kein Hex
print(msg_dec)
print(binascii.hexlify(msg_dec))
#print(type(msg_dec))

Output : 
       
b'75ce1408b210410124729691da93c439'
--------
b'AAAAAAAAAAAAAAAA'
b'41414141414141414141414141414141'

但最后一个问题。为什么先放在Binary里,然后再解密?

相关问题