“图片没有上传”与“图片绝对安全”是两件事。本站可以保证前者,但不能保证后者。 把边界说清楚,比反复强调“安全”更有用。
图片在浏览器里经历了什么
一张图片从进入页面到离开页面,只会经过下面这条路径:
- 你选择文件后,浏览器创建一个临时的
blob:地址,把文件读进当前标签页的内存。 - Canvas 把图片绘制到画布上,读取像素数组。
- 脚本按曲线顺序重排像素,把结果写回画布。
- 画布导出为新的 Blob,你点击下载时保存到本地。
这条路径里没有网络请求。页面本身是纯静态的 HTML、CSS 和 JavaScript, 没有后端接口,也没有对象存储。关闭标签页后,浏览器会回收对应的内存和临时地址。
页面确实加载了百度统计脚本,用于了解访问量、来源和页面停留时间。 它不会接触 Canvas 中的像素数据,也无法读取你选择的文件。 更多细节写在隐私政策里。
为什么它不是加密
加密的核心是“没有密钥就无法恢复”。本站的混淆没有密钥,曲线和位移参数完全由宽高决定, 任何人只要知道算法,就能写出还原程序。它更接近“把书页顺序打乱”,而不是“把书锁进保险箱”。
另外,混淆后的图片仍然是完整的图片文件,任何能显示图片的软件都能打开它。 这意味着它无法阻止截图、录屏、OCR 或人工观察;它只能让“一眼看懂”变得困难。
它能挡住什么,挡不住什么
| 场景 | 是否有帮助 | 说明 |
|---|---|---|
| 群里顺手点开缩略图 | 有帮助 | 缩略图是噪声,不会直接暴露内容。 |
| 防剧透、防答案提前泄露 | 有帮助 | 想看得多走一步,降低无意传播的概率。 |
| 不想被搜索引擎直接收录内容 | 部分有帮助 | 图片本身是噪声;但页面文字仍可能被索引。 |
| 有动机的人专门还原 | 基本无效 | 规则公开,任何人都能运行还原。 |
| 自动化识别与 OCR | 效果有限 | 重排会破坏版面,但不能保证阻止所有模型。 |
| 设备被他人直接使用 | 无效 | 对方可以打开同一个页面还原。 |
| 传输过程被截获 | 无效 | 图片仍是明文文件,混淆不改变传输安全。 |
五类不该只做混淆的图片
- 身份证、护照、驾驶证、银行卡。这些信息一旦泄露,可能被用于开户、注册或诈骗。
- 私密影像与未成年人照片。任何可被还原的遮挡都不足以保护当事人。
- 医疗记录、检测报告、处方。包含姓名、证件号、诊断信息,属于敏感个人信息。
- 商业合同、客户名单、未公开的财务数据。泄露的后果通常不是“尴尬”,而是实际损失。
- 账号密码、验证码、密钥、门禁二维码。混淆不会让它们失效,截图传播仍然危险。
判断标准可以很简单:如果这张图被别人看到会让你承担法律、财务或人身风险, 就不要用“可逆的视觉遮挡”来处理它。
设备与浏览器带来的风险
“本地处理”只说明数据没有离开浏览器,不说明浏览器本身绝对可信。以下情况仍可能造成泄露:
- 浏览器扩展。部分扩展可以读取页面内容、剪贴板或下载记录。处理敏感图片前,先关闭不必要的扩展。
- 共享设备。浏览器历史、下载目录和最近文件可能被其他人看到。使用无痕窗口并不能删除已下载的文件。
- 剪贴板。粘贴导入时,图片会短暂进入剪贴板历史;部分系统会保留较长时间。
- 云同步。下载目录如果开启了云盘同步,文件会自动上传到你使用的云服务。
- 恶意脚本或已入侵的设备。本站无法防御已经控制操作系统的攻击者。
自己验证“没有上传”
如果你愿意花两分钟,可以亲自确认处理过程没有网络请求:
- 在电脑浏览器中打开首页,按 F12 打开开发者工具,切换到 Network 面板。
- 勾选 “Preserve log”,清空现有记录。
- 选择一张图片,点“混淆图片”,再点“下载结果”。
- 观察 Network 列表。除了页面自身的静态资源和百度统计请求,不应出现携带图片内容的请求。
你也可以在处理时断开网络。只要页面已经加载完成,混淆、解混淆、对比和下载都可以照常进行; 这说明计算确实发生在本地。
更稳妥的替代方案
当图片确实敏感时,按目的选择工具:
- 只想让指定的人看:使用端到端加密的聊天工具,或带密码的压缩包。
- 只需要展示一部分:先裁剪,再对必要区域做不可逆的模糊或纯色遮挡,最后导出新文件。
- 需要长期保存:使用带密钥的加密容器,并把密钥通过另一个渠道传递。
- 只是防剧透:混淆足够,不必过度设计。
混淆可以和这些方法组合,但不能替代它们。把“增加一步操作”当成“保密”,是最常见的误用。 如果读完这一页你只记住一句话,那应该是:可逆不等于保密,本地处理不等于绝对安全。
如果你发现页面存在未描述的数据请求、明显的脚本漏洞,或文案中的安全表述有误,请通过反馈页说明复现步骤。涉及具体图片时,请勿附上原图,描述尺寸和格式即可。