基于 C++ 的高性能图像混淆算法项目,提供了完整的(Android & iOS)应用支持。
本项目包含 6 种不同的图像混淆算法,每种算法具有单独的实现逻辑与适用场景:
- 块混淆:将图像划分为多个宏块,并根据密钥生成的 MD5 散列序列来打乱块的二维位置。
- 适用场景:大范围图像块混乱,执行速度极快,对计算资源要求较低。
- 兼容PicEncrypt: 行模式:基于逻辑斯谛映射(Logistic Map)计算伪随机序列,对整行像素整体进行垂直方向的置乱。
- 适用场景:保留水平方向像素连续性而破坏垂直结构,适用于需要保留部分原始图像特征方向的轻度混淆。
- 兼容PicEncrypt: 行+列模式:结合行与列维度的 Logistic Map 混沌序列,分别在水平和垂直方向进行像素行和列的置乱。
- 适用场景:中高安全性要求,彻底打乱了行列层面的图像结构特征。
- 行像素混淆:每一行内部的像素会根据共同的 MD5 洗牌阵列被独立打乱,每一行打乱的规则相同。
- 适用场景:单维度的高强度混淆,破坏水平特征的轻量级混淆方法。
- 逐像素混淆:在整个图像的二维平面上,结合行、列独立的 MD5 混淆数组,进行像素级别的精确映射与完全乱序。
- 适用场景:极高的安全性要求,能够完全破坏原始图像的一切可视特征。
- 🍅小番茄图片混淆:先沿 Gilbert 2D(一种空间填充曲线)展开像素生成一维序列,再根据密钥计算偏移量,沿着曲线路径整体循环平移。
- 适用场景:保留局部像素天然关联性的特殊混淆方式,或需要借助不可预测的非线性路径展开的特殊应用场景。
以下为不同混淆算法在执行(加密/解密)时所接受的密钥输入规范与要求:
| 混淆算法 / Algorithm | 密钥类型 / Key Type | 填写规则与使用建议 / Rules & Usage Scenarios |
|---|---|---|
| 块混淆 | String |
任意字符串(如密码)。内部截取生成 MD5 种子进行洗牌排序。 |
| 兼容PicEncrypt: 行模式 | Double |
Logistic Map 初值。必须是 (0, 1) 范围内的数字(例如 0.666)。 |
| 兼容PicEncrypt: 行+列模式 | Double |
Logistic Map 初值。必须是 (0, 1) 范围内的数字。建议选择无理数截断值。 |
| 行像素混淆 | String |
任意字符串。根据其 MD5 散列值打乱行内像素。 |
| 逐像素混淆 | String |
任意字符串。结合行、列长度生成乱序种子打乱全像素。 |
| 🍅小番茄图片混淆 | Double |
控制偏移量的参数。必须是 (0, 1.618] 范围内的非零数字。 |
向 jiarandiana0307/PicEncrypt 仓库致敬!本项目充分汲取了该开源仓库中提供的优秀算法思路。由于原开源项目仅支持 Android 平台,本项目的初衷便是基于其算法逻辑进行跨平台重构,以实现多端支持。
特此声明并表达诚挚敬意。