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, 数据混淆, 数据转换, 无后门, 逆向工具