Metadata-Version: 2.4
Name: zyc-stego
Version: 0.5.6
Summary: 加解密 + 隐写统一命令行工具（LSB/Concat/QR-RGB/QR-Alpha/Unicode/零宽/DNA/AES-LSB/AES/RSA）
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: qrcode>=7.0
Provides-Extra: full
Requires-Dist: Pillow>=9.0; extra == "full"
Requires-Dist: cryptography>=39.0; extra == "full"
Requires-Dist: numpy>=1.21; extra == "full"

# zyc-stego

加解密 + 文件隐写统一命令行工具箱。安装后终端直接使用 `zyc` 命令。

## 功能一览

| 类别 | 命令 | 说明 |
|---|---|---|
| 图片隐写 | `zyc lsb` | LSB 最低有效位隐写（PNG） |
| 二进制合并 | `zyc concat` | 秘密文件追加到载体文件尾部（JPG 等） |
| 双重加密隐写 | `zyc aeslsb` | AES 加密 + LSB 双重保护 |
| 汉字入画 | `zyc unicode` | RGB 通道藏 Unicode 汉字（1 像素 = 1 汉字） |
| 零宽字符 | `zyc zwc` | 文本藏入零宽字符（肉眼不可见） |
| 音频隐写 | `zyc audio` | WAV 采样值 LSB 隐写 |
| 动图隐写 | `zyc gif` | GIF 帧间 LSB 隐写 |
| DNA 编码 | `zyc dna` | 文件转 DNA 碱基序列（FASTA） |
| QR 隐写 | `zyc qr rgb / qr alpha` | 二维码以低对比度/透明度混入图片 |
| AES 加密 | `zyc aes` | AES-256-GCM 对称加解密 |
| RSA 加密 | `zyc rsa` | RSA-2048-OAEP 非对称加解密 |
| Web 操作台 | `zyc web` | 启动本地网页可视化操作台（端口 520） |

## 安装

### 电脑 / 常规平台（推荐完整版）

```bash
pip install zyc-stego[full]
```

### 手机（Termux / Android）

Android 上没有 cryptography / Pillow 的预编译 wheel，**不要直接** `pip install zyc-stego[full]`（会触发源码编译并失败）。

正确两步安装：

```bash
# 1. 安装纯 Python 版（一定能装成功）
pip install zyc-stego

# 2. 用内置自检工具一键安装系统预编译依赖
zyc doctor
#    检测到 Termux 时会自动执行:
#    pkg install -y python-cryptography python-pillow
```

或者手动执行（效果相同）：

```bash
pkg update -y
pkg install -y python-cryptography python-pillow
pip install zyc-stego
```

> 说明：`zyc-stego` 本体是纯 Python（无编译），所以手机端 `pip install zyc-stego` 一定成功；
> 图片/加解密功能所需的 C 扩展库由 Termux 官方预编译提供，`zyc doctor` 负责检测和引导安装。

### 安装后检查

```bash
zyc -h        # 查看全部用法
zyc doctor    # 环境自检：检测各依赖是否就绪，缺失时给出修复命令
```

## 快速上手

```bash
# AES 加解密
zyc aes keygen -s aes.key
zyc aes encrypt -k aes.key -f report.pdf -o report.aes
zyc aes decrypt -k aes.key -f report.aes -o report_restored.pdf

# RSA 加解密
zyc rsa keygen --bits 4096 --priv priv.pem --pub pub.pem
zyc rsa encrypt --pubkey pub.pem -t "密码:xxx" -o token.rsa
zyc rsa decrypt --privkey priv.pem -f token.rsa

# 把秘密文件藏进载体
zyc lsb   encode carrier.png secret.zip stego.png   # 图片
zyc audio encode song.wav  secret.zip stego.wav     # 音乐
zyc gif   encode anim.gif  secret.zip stego.gif     # 动图
zyc concat encode cover.jpg secret.zip stego.jpg    # JPG 尾部

# 文本玩法
zyc unicode encode wall.png "海内存知己,天涯若比邻" out.png
zyc zwc encode "正常问候语~" secret.txt fake_mail.txt
zyc dna encode secret.zip secret.fasta
zyc qr rgb encode poster.png "https://a.cn" poster_sign.png -i 6

# 详细手册
zyc help lsb
zyc help aes

# 网页可视化操作台
zyc web        # 打开 http://127.0.0.1:520/
```

## 注意事项

- `zyc` 首次运行会把自身目录自动加入 PATH，方便随时调用。
- 建议妥善保管密钥文件（`aes.key` / `priv.pem`），丢失即无法解密。
- Web 操作台默认仅监听本机 `127.0.0.1:520`。
