小番茄混淆解图

本站按「吉尔伯特曲线遍历 + 黄金分割位移」的像素置换方案工作,与原始方案逐字节一致:不重新发明算法,也不做任何会改变结果的“优化”。整个过程在你的浏览器里完成

  • 支持批量处理
  • JPG / PNG 双输出
点下面「选择图片」按钮开始 图片只在你的浏览器里处理,不会上传到任何服务器。也支持把图片拖进这块区域,或按 Ctrl + V 粘贴截图。
等待载入图片

打开完整工作台(含批量处理)→

核心能力

三件事,做到底

工具不追求功能数量。它只保证一件事:同一张图片,无论处理多少次,结果都可预期、可复现、可逆。

打开完整工作台
01 / DECODE

解混淆

把被这套方案打乱的图片还原成可读画面。方向、尺寸、输出格式都会影响最终效果,工具会把位移量、循环个数等参数实时显示出来,便于判断处理是否符合预期。

  • 支持点击、拖放、Ctrl + V 粘贴三种载入方式
  • 处理结果直接替换图片,一键「还原」回到原图
  • 输出格式可选 JPEG 或无损 PNG
02 / ENCODE

混淆

把一张正常图片打乱成看不出结构的样子。它不会删除任何像素,只是把像素搬到别的位置,因此接收方用同一套规则就能还原——前提是你们事先约定好。

  • 位移量随图片尺寸自动计算,无需手填参数
  • 原图不被修改,随时可以「还原」
  • 与「解混淆」互为逆操作,来回切换可核对
03 / BATCH

批量与打包

一次放入多张图片排队处理,完成后打包成 ZIP 下载。打包使用存储模式而非二次压缩——JPEG 与 PNG 本身已经压缩过,再压一次只会白耗时间。

  • 队列内逐张显示尺寸、状态与体积变化
  • 可单独下载某一张,也可整体打包
  • 全程本地处理,队列再长也不产生上传流量
使用路径

三步就能拿到结果

不需要注册、不需要设置参数,也不需要理解算法。理解算法只是为了在结果不符合预期时知道该改哪里。

1

载入图片

点击「选择图片」、把文件拖进图片区,或直接按 Ctrl + V 粘贴剪贴板里的截图。载入后只显示原图,不会自动开始处理。

2

点「混淆」或「解混淆」

看到的是乱图就点「解混淆」,想把图片打乱就点「混淆」。结果会就地替换图片区里的内容,不会跳页,也不会生成新文件。

3

核对并保存

点「还原」可以随时回到载入时的图片,来回对比。需要保存时点「下载结果」;要逐字节还原原始像素,先把输出格式切成 PNG。

算法两步

整个方案只有两步,难的是细节

把混淆拆开看,它既不神秘也不复杂。真正需要小心的是边界:曲线必须恰好覆盖每个格子一次,位移量必须由图片尺寸算出来,输出格式必须与用途匹配。

第一步:沿曲线排队

用广义吉尔伯特曲线把 W × H 的像素阵列排成一维队列,共 N = W × H 个元素。曲线不自交、不遗漏、不重复,恰好走遍每个格子一次——这个「恰好一次」是可逆性的全部前提。

  • 曲线是希尔伯特曲线在任意宽高矩形上的推广
  • 曲线序用 32 位整型数组保存,元素是 y × W + x
  • 曲线具备局部性:一维相邻的索引,二维上通常也相邻
读曲线原理 →

第二步:整队平移

位移量 k = round((√5 − 1) / 2 × W × H),其中 (√5 − 1) / 2 ≈ 0.6180339887 是黄金分割共轭。把队列整体循环移位 k 位,再沿同一条曲线写回画布,得到的就是混淆结果。

  • 解混淆就是朝反方向移动相同的距离,不需要密钥
  • 位移会分解成 gcd(k, N) 个互不相交的循环
  • k 是公开常量,所以它不提供任何保密性
读位移原理 →

上面这条折线就是吉尔伯特曲线本身:它从起点出发,不重不漏地走遍 26 × 14 共 364 个格子,红点是当前播放到的位置。位移量 k = round(0.6180339887 × 364) = 225,像素就是沿这条顺序被整体搬走 225 个位置。

常见分辨率下的真实参数,由本站实际运行的实现算出
分辨率像素数 N位移量 kk / N循环个数单循环长度
640 × 480307 200189 8600.6180338542015 360
1280 × 720921 600569 5800.6180338546015 360
1920 × 10802 073 6001 281 5550.61803385413515 360
2048 × 15363 145 7281 944 1670.61803404513 145 728
1000 × 10001 000 000618 0340.6180342500 000

注意 2048 × 1536 那行:位移量与像素总数互质,于是整个置换退化成一个覆盖全部像素的大循环。循环个数只影响实现细节,不影响可逆性。

方案取舍

本地处理与上传处理,差在哪

这是一道架构选择题,不是功能对比。两条路都能完成同样的置换,但代价结构完全不同。

✓在浏览器本地处理

  • 图片不出设备:没有上传接口,也就没有传输环节与服务器留存
  • 没有等待与排队:处理耗时只取决于你的设备,不受网络与并发影响
  • 可以离线使用:断网后功能照常,页面自带全部算法代码
  • 代价:受浏览器内存上限约束,单张处理量被限制在 800 万像素
  • 代价:性能取决于本机,老设备处理大图会明显变慢

↑上传到服务器处理

  • 突破本机限制:服务端内存与算力更强,可以处理更大的图片
  • 结果一致:只要实现相同,输出与本地处理没有差别
  • 代价:图片必须完整离开你的设备,隐私取决于对方的存储与日志策略
  • 代价:受上行带宽限制,大图上传往往比处理本身更慢
  • 代价:离线不可用,站点不可用即功能不可用

本站选择本地处理,是因为这个算法的特点恰好适合:单遍线性遍历、无需模型、无需数据库、无需跨请求状态。换句话说,把它放到服务器上并不能换来质量提升,只会多出一个必须被信任的环节。

输出格式

JPEG 还是 PNG,先看你要不要无损

对比项JPEGPNG
是否无损有损,会改变像素值无损,像素值不变
混淆→解混淆的往返结果残留块状噪点,高频区域最明显可逐字节还原原始像素
典型体积照片类明显更小照片类明显更大
兼容性几乎所有平台与工具都支持主流平台均支持,个别老系统例外
建议用途打乱后分享,追求体积与兼容性还原他人发来的图、需要长期存档

一句话结论:要还原质量就用 PNG,要与原方案的输出保持一致就用 JPEG。把 JPEG 调成 PNG 不会让已经丢失的高频信息回来,但可以避免在导出这一步再丢一次。

展开看两种格式的完整差异与选择建议 →

术语速查

四个先记住的词

教程里出现频率最高的四个名词。完整词条见术语表。

吉尔伯特曲线
希尔伯特曲线在任意宽高矩形上的推广形式,一种不自交、不遗漏的空间填充曲线,用来把二维像素排成一维顺序。
位移量 k
队列整体移动的格子数,取 k = round((√5 − 1) / 2 × W × H),随图片尺寸自动计算,不是密钥。
双射
一一对应的映射关系。曲线恰好覆盖每个格子一次,置换才能反向执行,这是可逆性的前提。
无损往返
混淆再解混淆后,像素与原图逐字节一致。只有在整条链路都不做有损编码与缩放时才能成立。
常见疑问

大家最先问的五个问题

我的图片会被上传到服务器吗?

不会。本站没有上传接口,图片通过浏览器的文件读取能力载入,在画布上取像素、做置换、导出结果,整个过程都在当前标签页内完成。你可以断开网络后再试一次,功能完全正常。

想自己确认的话,打开浏览器开发者工具的 Network 面板,载入并处理一张图片,你会看到没有任何请求携带图片数据。更多细节写在隐私政策里。

混淆和加密是一回事吗?

不是。加密依赖密钥,没有密钥就无法还原,强度来自算法与密钥长度;混淆没有密钥,算法完全公开,任何人都可以用同样的规则还原。

混淆的目标是让画面不再被直接读懂、让自动化工具无法直接复用,而不是保密。把它当成加密使用会带来真实风险——如果你需要保护敏感信息,正确做法是把敏感部分裁掉或永久遮挡。

为什么还原后的图片有噪点?

因为置换算法本身是无损的,而 JPEG 是有损的。JPEG 在保存时做离散余弦变换与量化,会丢掉一部分高频信息;这些损失在还原后会被分散到画面各处,形成块状噪点与彩边。

要避免它,就得让整条链路都不做有损编码:输出选 PNG,中间不要截图、不要经过会二次压缩的聊天软件。细节见可逆性与误差分析。

支持多大的图片?处理不动怎么办?

单张上限是 800 万像素、单边不超过 4000 像素,与原始方案一致。超出时工具会先等比缩放到上限内再处理,因此这种情况下的结果不再是无损的。

如果没超限却依然很慢或页面失去响应,通常是设备内存吃紧。可以先裁剪掉不需要的部分再处理,或改用桌面浏览器;以 file:// 方式打开时,浏览器禁止创建后台线程,工具会自动改用主线程分批执行,结果一致但速度略慢。

能还原所有看起来乱七八糟的图片吗?

不能。本站只实现这一套方案:沿吉尔伯特曲线排队再做黄金分割位移。如果那张图是用别的规则打乱的,例如按行平移、分块洗牌、或者被裁剪旋转过,用本站处理只会得到另一张乱图。

判断线索是:本方案混淆后的图片,颜色分布与原图一致,只是结构被拆散,画面里通常还能看到连续的、蜿蜒的色带痕迹。看完解混淆教程里的四条特征,一般就能判断个大概。

安全与透明

三件我们明确承诺的事

不收集图片

没有上传接口,也没有图片存储。文件名、尺寸、处理记录都不落盘,刷新页面即清空。页面上唯一的第三方请求是用于统计访问情况的百度统计脚本,它不接触图片数据。

算法不掺水

曲线遍历与位移公式完全沿用原始方案,不做会改变结果的“优化”。构建阶段会把本站实现与原始实现逐字节比对,任意一处不一致都会导致构建失败,而不是悄悄发布。

边界说清楚

每一篇原理与教程文章都会写清方法的失效条件,不把混淆描述成加密,也不承诺“绝对安全”。技术说明里的数值都由与页面同源的代码算出,不是手工估算。

现在就可以试一张

不需要注册,不需要等待,也不会有图片离开你的设备。把图片拖到页面顶部的工具里,几秒内你就知道它是不是这套算法产生的乱图。