tanpawarit/obfuscation-tool

GitHub: tanpawarit/obfuscation-tool

该工具将 Pandas DataFrame 经 Gzip 压缩、XOR 掩码和 Base64 编码后转化为文本安全字符串,解决受限环境下表格数据无法直接传输的问题。

Stars: 0 | Forks: 0

# DataFrame 混淆与传输工具 🛡️📊 一款轻量级的 Python 工具,用于**编码**和**解码** Pandas DataFrame,以便在严格的环境边界或 DLP(Data Loss Prevention,数据防泄漏)安全过滤器之间进行安全的数据传输。它结合了 **Parquet + Gzip + XOR Masking(异或掩码) + Base64** 来混淆文件的 magic bytes(魔数)并压缩 payload(有效载荷)大小,从而方便通过 AI 聊天(例如 Claude / ChatGPT)进行文本复制粘贴。 ## 🌟 核心功能 - **混淆(绕过 DLP):** 应用 XOR Masking(异或掩码)来改变文件签名(Magic Bytes,魔数)和二进制模式,防止 DLP 工具识别出 Parquet 或表格数据。 - **高压缩率:** 采用 Gzip 压缩的 Parquet,大幅减小 payload 大小(比 CSV 小 80% - 95%)。 - **100% 保留 Schema 与类型:** 恢复时完美保留 Pandas 数据类型(Int, Float, DateTime, String, Category)。 - **文本安全的 Payload:** 将二进制数据编码为 Base64 字符串,便于复制并粘贴到文本字段或 LLM 聊天中。 ## 📦 环境要求与安装说明 需要 Python 3.7+ 以及标准的数据科学库: ``` pip install pandas pyarrow ``` *(你也可以使用 `fastparquet` 来代替 `pyarrow`)* ## 🚀 快速开始与用法 ### 📤 机器 A:编码 DataFrame(发送方) ``` import pandas as pd from df_transfer_tool import encode_dataframe # 准备你的 DataFrame df = pd.DataFrame({ 'id': [101, 102, 103], 'name': ['Alice', 'Bob', 'Charlie'], 'score': [95.5, 88.0, 92.3] }) # 将 DataFrame 编码为混淆的 Base64 字符串 payload = encode_dataframe(df) # 打印或复制 payload 以粘贴到 Claude 中 print(payload) ``` ### 📥 机器 B:解码 Payload(接收方) ``` import pandas as pd from df_transfer_tool import decode_dataframe # 粘贴从 Claude 接收到的 Base64 字符串 payload = """[PASTE_STRING_FROM_CLAUDE_HERE]""" # 解码回原始的 DataFrame df = decode_dataframe(payload) # 像往常一样使用你的 DataFrame print(df) ``` ## 🔑 自定义 XOR 安全密钥(可选) 你可以指定一个自定义的 `xor_key`(整数范围 `0-255`,例如 `42` 或十六进制的 `0x5A`): ``` # Sender Side payload = encode_dataframe(df, xor_key=42) # Receiver Side df = decode_dataframe(payload, xor_key=42) ``` ## 🧪 测试脚本 在终端中运行验证测试脚本: ``` python main.py ``` ## ⚙️ 技术流程概述 1. **DataFrame ➔ Parquet Bytes:** 将 DataFrame 转换为经过 Gzip 压缩的二进制 Parquet 流(`df.to_parquet(buffer, compression='gzip')`)。 2. **Binary ➔ XOR Masking:** 使用 `xor_key` 对每个字节执行按位异或转换,去除原始的 Parquet magic bytes(`PAR1`)。 3. **Masked Bytes ➔ Base64 String:** 将经过掩码处理的 bytearray 编码为 ASCII 安全的 Base64 字符串,以便进行文本传输。
标签:Base64, DLP绕过, DNS 反向解析, Python, 数据混淆, 数据转换, 无后门, 逆向工具