Python解密带有特殊字符的字节

时间:2019-05-16 03:14:56

标签: python encryption aes

我正在尝试解密手机和智能插头之间发送的UDP数据包。数据包使用AES 256加密进行了加密,但是我有密钥。每个智能插头都会生成一组随机字符,以用作该设备的密码。解密数据包时,解密失败并带有特殊字符。

我对加密/解密还很陌生,但是我尝试在解密之前格式化数据包,但是没有任何运气。

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend

def decrypt(encrypted_hex):

    enc_bytes = binascii.unhexlify(bytes(encrypted_hex,"utf-8")
    key = 'fdsl;mewrjope456fds4fbvfnjwaugfo'.encode()
    decryptor = Cipher(algorithm=algorithms.AES(key), mode=modes.ECB(),
                       backend=default_backend()).decryptor()

    decrypted = decryptor.update(enc_bytes) + decryptor.finalize()
    print(decrypted)
    return decrypted

例如,我得到的输出是:

device%28-d9-8a-8d-a4-ef\x00\xe9\x8f\x00pj*?

包中的大多数(包括密码的后4个字符)均已成功显示,但是并非所有字符都可以成功显示。我还应该提到,关键是这些智能插头的公共知识,并且该解密python脚本已在线发布。

我尝试解密的原始UDP数据包是:c0405f7ac949afc673380ca145ee83746543a6368ec9f6fab08d714a2bb528c2

0 个答案:

没有答案