混淆不是模糊,也不是加密

模糊会用邻近颜色重新计算像素,马赛克会合并细节;小番茄图片混淆不改变每个像素的 RGBA 数值,而是改变像素在画布上的位置。打散后画面难以直接辨认,但信息仍然在图里。只要图片没有被有损修改,同一规则便能将位置反转回来。

第一步:给矩形画一条遍历路径

工具使用 Gilbert 二维空间填充遍历法,为任意宽高的矩形生成一条覆盖全部像素的坐标路径。路径把二维网格转换成一串有顺序的点;即使宽和高不同,也能让每个坐标恰好出现一次。

以一张宽 W、高 H 的图片为例,路径长度为 N = W × H。路径中第 i 个位置对应图上一个具体的 (x, y) 坐标。这个顺序由宽高确定,同样尺寸的图片会得到同一条路径。

第二步:沿路径循环移动

参考算法使用黄金比例相关的固定系数计算位移量:S = round(((√5 − 1) / 2) × N)。混淆时,路径上第 i 个像素被写入第 (i + S) mod N 个坐标。它是一一对应的循环置换,没有两个原像素抢同一个目标位置。

举个概念例子:把像素想象成按路径站成一圈的人,每个人同时向前移动固定步数。队伍的位置变了,人数与每个人自身的颜色并没有变。

第三步:沿原路逆向找回

解混淆时重新生成同样的路径和位移量:从第 (i + S) mod N 个坐标读取像素,再写回第 i 个坐标。逆向操作所需的全部参数由当前图片宽高决定,因此无需单独记录种子、密钥或处理时间。

这也意味着图片尺寸不能变:裁剪或缩放会改变路径长度和像素位置。重复混淆需要相同次数的解混淆才能回到原始排列。

为什么下载格式是 PNG?

参考实现使用 JPEG 输出,JPEG 会通过有损编码改变像素值。即使路径完全逆转,像素颜色也可能无法精确恢复。本网站保留原来的 Gilbert 路径与位移逻辑,但把处理结果输出为无损 PNG;在未被其他软件重编码或调整尺寸的前提下,可以精确逆转像素排列。

如果上传前图片已经是 JPG,原文件过去的压缩损失当然不能被恢复;这里所说的“精确”,是指对本次导入并解码的像素做无损排列逆转。超大图片若被工具预先缩放,也只能还原到缩放后的像素版本。

这不是隐私保护方案

算法公开,参数由图片尺寸直接得出,没有密码与访问控制。任何拿到完整混淆图片的人都可以按规则还原内容。请不要用它代替文件加密,也不要用它保护个人证件、医疗记录或商业机密。有关本地处理的说明,请阅读隐私说明。