python - 带加密的 Python AES ECB 模式
问题描述
我试图对一些使用 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'
我不明白。
解决方案
好的,感谢迈克尔菲尔。
解决方案:
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'
但最后一个问题。为什么先把它放在二进制中,然后再解密呢?
推荐阅读
- https - IIS10(在Win 2019 Server上)如何配置https,以便可以使用URL中的服务器名称
- python - 我的列表 (f3) 没有打印输出并且一直给我 StaleElementReferenceException?
- labview - 寻找建议,循环按时间条件终止
- unity3d - 使用计算着色器生成共享顶点的平面网格
- javascript - 如何处理钩子中的嵌套元素?
- javascript - Nodejs alpine Docker puppeteer 无法启动
- grafana - 使用 Cloudwatch 数据源在 Grafana 仪表板中创建警报
- zapier - 如何将 RoamResearch 连接到 Zapier?
- angular - 反应中的mat-button-toggle组使其他控件消失?
- r - RStudio 无法在 Mac 上启动