python 解密AES ECB 报错,gzip.BadGzipFile: Incorrect length of data produced?

python解密AES ECB 报错

import base64
import datetime
import gzip
import json
import traceback

from Crypto.Cipher import AES
from Crypto.Util.py3compat import tobytes

# 定义密钥、初始化向量、块大小(AES为16Bytes)
key = 'cmmgfgehahweuuii'.encode('utf-8')
iv = None
block_size = AES.block_size


# PKCS7填充函数
def pkcs7_padding(data):
    pad_len = block_size - len(data) % block_size
    padding = bytes([pad_len] * pad_len)
    return data + padding


# PKCS7反填充函数
def pkcs7_unpadding(data):
    pad_len = data[-1]
    if pad_len < 1 or pad_len > block_size:
        pad_len = 0
    return data[:-pad_len]


# 加密函数
def aes_encrypt(data):
    cipher = AES.new(key, AES.MODE_ECB)
    encrypted_data = cipher.encrypt(pkcs7_padding(data.encode('utf-8')))
    return base64.b64encode(encrypted_data).decode('utf-8')


# 解密函数
def aes_decrypt(data):
    cipher = AES.new(key, AES.MODE_ECB)
    decrypted_data = pkcs7_unpadding(cipher.decrypt(base64.b64decode(data)))
    # 注意,此处代码应该注释掉。不需要转换字符串了,因为pkcs7_unpadding返回的就是解密后的字符串
    bytes = u(decrypted_data)
    return ungzip(bytes)


# 解压缩
def ungzip(compressed_data):
    try:
        # 使用gzip.decompress方法解压缩字节序列
        decompressed_data = gzip.decompress(compressed_data)
        # 将解压缩后的字节序列转换为字符串
        decompressed_string = decompressed_data.decode('utf-8')
        return decompressed_string
    except gzip.BadGzipFile:
        # 处理gzip.BadGzipFile异常
        print("提供的数据不是一个有效的gzip文件。")
        traceback.print_exc()
        return None
    except Exception as e:
        # 处理其他可能的异常
        print(f"解压缩过程中出现错误: {e}")
        return None

# 会将WordArray对象中的每个32位整数转换为4个8位字节,并将它们存储在一个bytearray对象中
def u(word_array):
    # 获取WordArray对象的字节表示形式
    bytes_data = tobytes(word_array)
    # 初始化一个bytes对象,其长度等于word_array的字节长度
    result = bytearray(len(bytes_data))
    # 遍历WordArray对象的字节数据
    for i in range(len(bytes_data) // 4):
        # 将字节数据转换为32位整数
        word = bytes_data[i * 4] << 24 | bytes_data[i * 4 + 1] << 16 | bytes_data[i * 4 + 2] << 8 | bytes_data[i * 4 + 3]
        # 将32位整数转换为4个8位字节,并存储在result中
        result[i * 4] = (word >> 24) & 0xFF
        result[i * 4 + 1] = (word >> 16) & 0xFF
        result[i * 4 + 2] = (word >> 8) & 0xFF
        result[i * 4 + 3] = word & 0xFF

    return result

#
# # 原始数据
encrypted_data = "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"
print("加密前:\n", encrypted_data)
decrypted_data = aes_decrypt(encrypted_data)

print('解密后:\n', decrypted_data)

我的代码如上,无法解析。
但是如果把代码的解密字符换成别的,可以解析:

"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"

这两段数据都是从同一个接口获取的。为什么有的可以解析,有的不行。

前端对应的加密是这样的

return (0,
                                i.Z)().wrap((function(t) {
                                while (1)
                                    switch (t.prev = t.next) {
                                        case 0:
                                            return t.prev = 0,
                                                n = s.enc.Utf8.parse("cmmgfgehahweuuii"),
                                                a = s.AES.decrypt(e, n, {
                                                    mode: s.mode.ECB,
                                                    padding: s.pad.Pkcs7
                                                }),
                                                o = u(a),
                                                r = c.ungzip(o, {
                                                    to: "string"
                                                }),
                                                t.abrupt("return", JSON.parse(r));
                                        case 8:
                                            throw t.prev = 8,
                                                t.t0 = t["catch"](0),
                                                console.log(t.t0),
                                                new Error("date decrypt error");
                                        case 12:
                                        case "end":
                                            return t.stop()
                                    }
                            }), t, null, [
                                [0, 8]
                            ])

我后面发现python的pkcs7_unpadding函数解密可以直接获取到字节串,不要转换。只要去掉u函数就可以了

decryptData() {
            try {
                const key = CryptoJS.enc.Utf8.parse("cmmgfgehahweuuii");
                const decrypted = CryptoJS.AES.decrypt(‘密文’, key, {
                    mode: CryptoJS.mode.ECB,
                    padding: CryptoJS.pad.Pkcs7
                });

                if (!decrypted) {
                    throw new Error('Decryption failed');
                }

                const words = decrypted.words;
                const sigBytes = decrypted.sigBytes;
                const bytes = this.convertWordsToBytes(words, sigBytes);

                const decompressed = pako.ungzip(bytes, { to: 'string' });
                this.decryptedData = JSON.parse(decompressed);
            } catch (error) {
                console.error('Error decrypting data:', error);
                this.decryptedData = null;
            }
        },
/* Python中,不需要使用convertWordsToBytes方法的原因是因为Python的加密库(如pycryptodome)在执行解密操作时,直接返回了解密后的字节串(byte string)。这是因为加密和解密操作本质上是处理字节级别的数据,而不是处理整数数组。

在JavaScript的crypto-js库中,加密后的数据被表示为一个包含多个32位整数的数组,这是因为JavaScript没有直接支持64位整数类型,所以使用数组来存储更大的数据块。这就是为什么在JavaScript中,你需要在解密后转换这些整数回字节串。

相比之下,Python的加密库处理加密和解密时直接在字节串级别上进行,因此不需要额外的步骤来将整数数组转换为字节串。Python的pycryptodome库的decrypt方法直接返回一个字节串,你可以直接使用这个字节串进行后续操作,比如解压缩或解析JSON。*/
        convertWordsToBytes(words, sigBytes) {
            const bytes = new Uint8Array(sigBytes);
            let offset = 0;
            for (let i = 0; i < words.length; i++) {
                const word = words[i];
                bytes[offset++] = (word >> 24) & 0xff;
                bytes[offset++] = (word >> 16) & 0xff;
                bytes[offset++] = (word >> 8) & 0xff;
                bytes[offset++] = word & 0xff;
            }
            return bytes;
        }
阅读 602
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏