# 图片混淆 **Repository Path**: cloud-lumiere/image-shuffle ## Basic Information - **Project Name**: 图片混淆 - **Description**: 基于块置乱的图片混淆加解密工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-27 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CryptoImage - 密码学信息隐藏工具 基于**块置乱**技术的图片加密/解密工具。将图片分割为 N×N 的像素块,利用密钥生成随机排列并打乱块序,实现可视化的信息隐藏。加密后的图像保留原图的色彩分布与整体色调,使用正确密钥可无损恢复原图。 ## 特性 - **块置乱加密** — 保持颜色统计特征的同时打乱图像局部结构 - **无损恢复** — 解密结果与原图像素级一致 - **可调混淆强度** — 块大小 4×4 ~ 128×128,值越小混淆越强 - **批量处理** — 一次性处理多张图片 - **密钥控制** — 不同密钥产生不同加密结果 - **三种使用方式** — 单网页、命令行(CLI)、本地网页端(Web UI) ## 快速开始 ### 单网页版 直接双击打开 `crypto_image.html` 即可使用,无需安装任何软件,无需网络,所有计算在浏览器内完成。 ``` crypto_image.html ← 双击打开,纯浏览器端运行 ``` 支持: - 拖拽/点击上传多张图片 - 加密/解密切换 - 密钥与块大小调节 - 批量处理与进度显示 - 单张下载 / 一键打包下载全部(ZIP) - 支持 PNG / JPG / BMP / TIFF / WebP / GIF --- ### 命令行工具(CLI) 需要 Python 3.7+ 及依赖: ```bash pip install numpy ``` ```bash # 加密 python crypto_image.py encrypt input.jpg encrypted.png --key 8888 --block-size 16 # 解密 python crypto_image.py decrypt encrypted.png restored.png --key 8888 --block-size 16 # 启动图形界面 python crypto_image.py --gui ``` **参数说明:** | 参数 | 说明 | |------|------| | `mode` | `encrypt` 加密 / `decrypt` 解密 | | `input` | 输入图片路径 | | `output` | 输出图片路径 | | `-k, --key` | 加密/解密密钥(默认 12345) | | `-b, --block-size` | 块大小 4~128(默认 16) | ### 本地网页端(Web UI) 需要 Python 3.7+ 及 Flask: ```bash pip install numpy flask cd crypto_image_web python app.py ``` 打开浏览器访问 http://127.0.0.1:5000 在确认依赖已全部安装的情况下,可直接点击`start.bat`启动。 网页端支持: - 拖拽上传多张图片 - 可视化参数调节 - 批量加密/解密 - 结果预览与下载 - 一键打包下载全部结果(ZIP) ## 原理说明 ``` 原始图片 ──→ 分割为 N×N 块 ──→ 密钥驱动排列 ──→ 块重排 ──→ 加密图片 加密图片 ──→ 分割为 N×N 块 ──→ 逆排列还原 ──→ 块复原 ──→ 原始图片 ``` 1. 将图像切割为大小相等的矩形块(如 16×16 像素) 2. 利用密钥初始化伪随机数生成器,生成一个排列(置换) 3. 加密时按排列顺序重排所有块;解密时执行逆置换 4. 由于仅改变块的位置而不改变块内像素,颜色直方图完全保留 5. 块越小,局部细节被打散得越彻底,混淆效果越强 ### 块大小效果对比 | 块大小 | 混淆强度 | 可视特征 | 适用场景 | |--------|---------|---------|---------| | 4×4 | 最高 | 仅保留色调 | 强混淆需求 | | 16×16 | 中等 | 保留轮廓与色块 | 默认推荐 | | 64×64 | 较低 | 保留大部分结构 | 弱混淆/水印 | ## 项目结构 ``` ├── crypto_image.html ★ 单网页版(无依赖,推荐) ├── crypto_image.py 命令行工具 + tkinter GUI ├── crypto_image_web/ │ ├── app.py Flask 网页服务端 │ └── templates/ │ └── index.html 网页前端界面 ├── README.md ``` ## 许可证 MIT