解混淆 jiehunxiao.com

小番茄图片混淆

把图片"打乱成番茄酱",需要时再原样"拼回去"——像素级混淆与解混淆,全程只在你的浏览器里发生。

本地处理 · 不上传 免费 · 无需注册 手机电脑通用 可离线使用
点击下方按钮选图,或把图片拖到这里 也支持截图粘贴,或图片复制粘贴
待处理的图片预览

选择图片

三步上手,比泡面还快

1

选一张图

点按钮、拖拽、粘贴截图都行。太大的图片会智能自动等比缩小,防止手机浏览器内存吃紧。不会影响图片质量。

2

点"混淆"

一秒钟左右,图片变成一团看不出内容的"像素粥"。放心,每一个像素都还在,只是被搬去了别的座位。

3

需要时"解混淆"

对混淆图点"解混淆",所有像素按原路返回。点"还原"则随时回到你最初选择的那张原图。

+

保存结果

点"下载结果"把当前画面存成 JPG。也可以在图片上长按/右键另存,两种方式拿到的是同一张图。

它是怎么做到的?聊聊小番茄算法

很多人第一次见到这个工具都会问同一个问题:图都乱成那样了,凭什么还能一个像素不差地拼回来?答案藏在两个古典而优雅的数学工具里——空间填充曲线黄金分割

第一步:把二维的图"抻"成一维的线

想象一支笔从图片角落出发,以一种特定的蛇形路线不重复、不遗漏地走过每一个像素——这条路线就是广义希尔伯特曲线(gilbert curve)。经典的希尔伯特曲线只能画在边长为 2 的幂的正方形里,而广义版本通过递归地"劈半"矩形,让任意宽高的图片都能被一笔画完。走完之后,原本二维排列的像素,就变成了一条按访问顺序排队的一维长龙。

第二步:让整条队伍"向后转移"

接下来对这条像素长龙做一件极其简单的事:整体循环右移一个固定的距离。移多远?算法选择了黄金分割比例:

offset = round( (√5 − 1) / 2 × 像素总数 ) ≈ 0.618 × width × height

之所以选 0.618 而不是随手写个一半,是有讲究的:黄金比例是"最无理"的无理数,用它做偏移能让打乱后的像素分布得足够均匀、足够没有规律感,肉眼几乎找不到任何残留的图案线索。而希尔伯特曲线自带的"空间局部性"(曲线上相邻的点在图上也相邻)又保证了打乱后的图不会出现成块的原图残片。

解混淆:同一条路,倒着走一遍

因为偏移量只由图片的宽和高决定,不需要密码、不需要密钥文件——拿到混淆图后重建同一条曲线,把队伍向左移回同样的距离,每个像素就都回到了自己原来的座位上。这也是"混淆"和"加密"的本质区别:它防的是"顺眼一瞥",不防"有心人",这一点请务必知晓。

上面这组小方块是页面加载时用同一套算法实时算出来的,不是贴图——你正在看的就是算法本身。

适合什么场景

发帖防缩略图剧透

在论坛、群聊里分享含剧透或惊吓元素的图,先混淆再发,想看的人自己解,不想看的人刷过去毫无压力。

躲避粗暴的图片审查误伤

一些平台的机器审核偶尔会误判正常图片。混淆后的图在机器眼里只是噪点,可以作为临时的传输手段(请遵守平台规则与法律法规)。

轻量的视觉遮挡

把答案、优惠码截图混淆后发出,配上解混淆的说明,给对方一点"拆盲盒"的仪式感。

教学演示

给学生直观展示什么是空间填充曲线、什么叫可逆变换——一张自己的照片被打乱又复原,比十页 PPT 都管用。

混淆、打码、加密,别再傻傻分不清

这三个词经常被混用,但它们解决的是完全不同的问题。用一张表说清楚:

方式可逆吗需要密钥吗防得住谁
打码 / 模糊不可逆,信息永久丢失不需要所有人(包括你自己)
混淆(本工具)完全可逆不需要,算法即"钥匙"随手一瞥的路人、机器缩略图
加密(如 AES)持密钥可逆必须没有密钥的任何人

一句话总结:想永久遮住用打码,想临时遮住用混淆,想真正保密用加密。敏感证件、隐私信息请不要依赖混淆来保护。

隐私说明:你的图片哪儿也没去

这个页面没有后端。选图之后,浏览器把图片画到一块内存里的 Canvas 画布上,所有像素搬运都由你设备上的 JavaScript 完成,处理结果也只存在于当前标签页的内存中。你可以自己验证:

唯一的建议:在网吧等公共电脑上使用后,记得删掉下载文件夹里保存的结果图。

常见问题

为什么在别的地方混淆的图,这里也能解开?

因为小番茄算法是确定性的:曲线走法和偏移量都只由图片尺寸决定。只要对方用的是同一套算法,且图片没有被裁剪、缩放或旋转,这里就能一键解开。反过来,这里混淆的图拿到其他实现同样算法的工具里也能解。

解出来的图有点花 / 有噪点,怎么回事?

九成原因是混淆图在传输途中被平台二次压缩或缩放了。缩放会改变像素坐标,置换关系随之错位;重度压缩则会把相邻像素"糊"在一起。解决办法:传混淆图时尽量走"原图 / 文件"通道,避开自动压缩。

反复混淆再解混淆,画质会越来越差吗?

会,但很慢。像素搬运本身一个字节都不会丢,损耗来自每次输出时的 JPEG 重编码(本工具已使用最高质量参数)。偶尔来回几次肉眼看不出区别,但请始终保留原图,不要把混淆图当唯一存档。

能混淆 GIF 动图或透明 PNG 吗?

GIF 只会处理第一帧,动画会丢失。透明 PNG 可以处理,但输出为 JPEG 后透明区域会变成不透明背景。这两类图建议先转成普通静态图再操作。

大图处理很慢或者浏览器卡住了?

工具会自动把超过 800 万像素的图缩到安全范围,一般手机也能在一两秒内完成。如果仍然卡顿,多半是设备内存紧张,关掉几个其他标签页再试即可。

"还原"和"解混淆"有什么区别?

"解混淆"是对当前画面执行一次逆向置换;"还原"则是直接回到你最初选择的那个文件,不管中间混淆了多少轮。手滑点错时,"还原"就是你的后悔药。

顺便涨点冷知识

希尔伯特曲线不只是"好看"

1891 年数学家大卫·希尔伯特提出这条曲线时,它还只是"一条能填满正方形的线"这种纯理论玩具。一百多年后,它被用在数据库索引(把地理坐标映射成一维键)、图像压缩、甚至芯片布线上——因为它有个宝贵性质:一维上挨着的点,二维上也大概率挨着。本工具正是借这个性质,让打乱后的图既彻底又"均匀地乱"。

0.618 的另一个身份

黄金分割不只出现在美术课本里。在数论中,(√5−1)/2 被认为是"最难用分数逼近的无理数",这让它成为伪随机分布的天然好材料——低差异序列、斐波那契散列都在用它。小番茄算法拿它当偏移系数,本质上是让像素以"最不规则"的方式重新落座。

为什么叫"小番茄"?

据说是因为混淆后的图片红红绿绿一团,像被捏爆的小番茄。真假无从考证,但这个名字确实比"基于广义希尔伯特曲线的循环像素置换工具"好记多了。

更新日志