最近国外一家技术公司的大佬 Dan Petro 发布的一条帖子 , 在国外的程序员圈子里引起了不小的轰动 。
并且这条帖子应该可以说和各位息息相关了 ,他在自己的帖子中告诫网友们 ,用像素化给图片打码 , 是一个非常不好并且不安全的方法 。
你打码的信息 , 很容易被修复 , 然后造成隐私泄露 。
文章图片
主要原因呢 , 就是这位大佬开发了一个用于破解像素打码的小工具 , 并且作为一款开源软件 , 上传到了 GitHub 上 。
每个用户都可以免费下载到这个小工具 , 用来破译网上打了马赛克的图片 。
文章图片
我知道你们看到这种传播“ 火种 ”的行为 , 都要激动的立马去 GitHub 下载这个工具 , 然后掏出自己珍藏的学习资料 。
文章图片
但是很遗憾 , 这玩意不是用来去除静态图像马赛克的 。
目前的去除图片上马赛克的技术 , 都是通过 AI 去数据库中模拟对比相似的内容 , 再拼凑出像素运动的规律模拟还原 。
也就是让 AI 来 “ 画 ” , 再压缩回马赛克状态跟原图比一比 , 最后把相似的版本拿出来展示 。
但 Dan 开发的这个工具 ,主要是用来破译打在英文字母上的马赛克的 , 而且成功率贼高 。
并且 Dan 还在自己的帖子中 , 详细的讲明白了 , 自己开发这款 Unredacter 解码工具的原理 。
文章图片
其实吧 , 这个破解马赛克的过程并没有差友们想象中的这么神秘 。
差友们随便打开一个打码工具 , 然后给下面这串英文打上马赛克 , 大概就能够得到这么一张普通至极的“ 低清打码图片 ”了 。
文章图片
在你打码的过程中 , 算法会把图像划分为一个个固定像素大小的色块 , 再把每一小块的像素块 ,进行一个“ 涂抹 ”处理 。
让一张清晰的图片 , 变成很多个深浅不同的黑白灰色块 。
就拿下面这张图片举个例子吧:如果大家要给下面这张图片打码 , 算法会把图像分为多个由 8×8 个像素组成的方块 , 然后把方块里所有像素的颜色匀一匀 , 涂抹成不同灰度 。
虽然说码是打上了吧 , 但是这种常规的方式 ,却依旧在打码后的图片上 , 留下足够破译图片信息的线索 。
因为马赛克打码的算法 , 就是固定的这么两步操作:首先分割图片 , 然后用一个平均值“ 涂抹 ”每一个方块 。
所以理论上 , 只要我们了解打码这种简单粗糙的算法逻辑 ,就能够倒推过来 , 破译打码的图片 。
只要判断出每个方块的大小 , 再逐个对比键盘上所有字符打码前后的效果 , 就可以找个那个字符 。
直接来看看这款强大的解码工具的效果吧:
文章图片
其实早在 Dan 开发 Unredacter 解码工具之前 , 市面上早就有用这种逻辑解码的工具了 , 但是由于一些技术问题 ,这些解码工具的正确率并不高 。
比如像字符溢出的问题:在解码的过程中 , 是不能保证文本字符和这些像素块 1:1 完全对齐的 , 比如这种字符正好卡在了两个方块中间的尴尬情况 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
