密码打马赛克已经不安全了!这款开源的去 “马赛克” 工具一秒还原

Depix是一款能从像素化图像中恢复文字密码的工具,尤其针对使用线性方框滤波器创建的马赛克。通过匹配德布鲁因序列,Depix能在一定程度上还原图像中的文字,尽管不完美,但对于部分像素化图像,效果显著。使用时,需提供像素化图像和相同字体设置的德布鲁因序列截图。该技术提醒我们在截图打码时需更加谨慎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击“开发者技术前线”,选择“星标”

让一部分开发者看到未来

a2a140c42b2807c1329155b2a1b19271.png

来源:机器之心

像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如:

c517f3d7e73faac18838a5e042b51863.png

但是,在你想隐藏信息的同时,有一些技术却反其道而行之,试图将图片还原为原始状态。

此前,一个名为 Depix 的 GitHub 项目爆火,上线三天 star 量已经高达 6.9k。项目作者 Sipke Mellema 是一名信息安全顾问。

1fea05c87d55e450c55cd10191887f5e.png

项目地址:https://github.com/beurtschipper/Depix

Depix 能够从像素化图像截图中恢复原图中包含的文字密码。该项目适用于使用线性方框滤波器(linear box filter)创建的像素化图像。如下图所示,项目作者给出了像素化图像、恢复之后的效果和原图的对比结果:

90ec8606b2c9549a769c71db51171b5b.png

马赛克打得够严实了,不过 Depix 还是基本解读出了被隐藏的信息。

如何使用

使用 Depix 从像素化图像截图中恢复文字密码,操作也比较简单:

  • 从截图中分割出矩形像素化 block;

  • 在具有相同字体设置(包括文本大小、字体、颜色、hsl)的编辑器中,粘贴待处理字符的德布鲁因(De Bruijn sequence)。

  • 给该序列截图,尽可能使用和像素化图像相同的截图工具。

  • 执行命令:

python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png

Depix 算法利用线性方框滤波器单独处理每一个 block 这一事实。它对搜索图像中的每一个 block 执行像素化以寻找直接匹配。

对于大部分像素化图像,Depix 尽量寻找单匹配结果,并假设这些匹配是正确的。至于周围多匹配 block 的结果被看作像素化图像中相同的几何距离,并认为这些匹配也是正确的。该过程重复多次。

在正确的 block 没有更多几何匹配后,Depix 将直接输出所有正确的 block。对于多匹配 block,Depix 将输出所有匹配的平均值。

Depix 背后的算法

像素化常使用线性方框滤波器实现。线性方框滤波器的实现很简单,速度很快,可以并行处理多个 block。

由于线性方框滤波器是一种确定性算法,对同样的值执行像素化通常会产生同样的像素化 block。使用同样位置的 block 对相同文本执行像素化,会得到同样的 block 值。我们可以尝试像素化文本来找出匹配的模式。幸运的是,这对于秘密值的一部分同样奏效。我们可以把每个 block 或 block 组合看作一个子问题。

项目作者没有选择创建潜在字体的查找表。该算法要求在相同背景上具备相同的文本大小和颜色。现代文本编辑器还会添加色调、饱和度和亮度,也就是说存在海量潜在字体。

项目作者给出的解决方案也很简单:使用待处理字符的德布鲁因序列,将其粘贴到相同的编辑器中,然后截图。该截图可以用作相似 block 的查找图像,例如:

0e694f10d021c3b38d379ec6d27ceb8e.png

德布鲁因序列包括待处理字符的所有双字符组合。这很重要,因为一些 block 会重叠两个字符。找出恰当的匹配需要搜索图像中具备相同像素配置的 block。

在以下测试图像中,Depix 算法无法找到「o」的一部分。这是因为在搜索图像中,搜索 block 还包含下一个字母(「d」)的一部分,但在原始图像中这里有个空格。

ff3c352652dbe3a66f1ff0a686987537.png

创建字母的德布鲁因序列时加上空格显然会带来同样的问题:算法无法找到后续字母的恰当 block。有空格又有字母的图像需要更长的搜索时间,但结果也更好。

对于大部分像素化图像而言,Depix 似乎能够找到 block 的单匹配结果,并假设这是正确的。然后将其周围多匹配 block 的匹配结果看作在像素化图像中处于相同的几何距离,并假设这些匹配也是正确的。

在正确的 block 没有更多几何匹配后,Depix 直接输出所有正确的 block。对于多匹配 block,Depix 将输出所有匹配的平均值。虽然 Depix 的输出并不完美,但已经算不错了。

下图展示了包含随机字符的测试图像的去像素化结果,大部分字符被正确读取:

4b769a794811d2d331b986f5fbb18e2b.png

对这个项目感兴趣的读者,可以自行尝试。

以后截图时给敏感信息打码,看来不能简单地用「马赛克了」。

参考链接:

https://github.com/beurtschipper/Depix

https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema/?trackingId=yYFSUnuxRXasNV%2Fh3ZsiSw%3D%3D

— 完 —
点这里👇关注我,记得标星呀~
前线推出学习交流一定要备注:研究/工作方向+地点+学校/公司+昵称(如JAVA+上海
扫码加小编微信,进群和大佬们零距离

END

后台回复“电子书” “资料” 领取一份干货,数百面试手册等

历史推荐

如何提高微服务的幸福感?

旷视CEO竟遭监听敲诈:不给300万就卖敏感信息录音!网友:利好无人驾驶?

知乎:为什么魂斗罗只有128KB却可以实现那么长的剧情?

好文点个在看吧!

Video Enhancer 是一款提升视频质量的软件。采用大量的VirtualDub滤镜和附加的编码器重新压缩的视频处理,将马赛克进行还原。 您可通过使用 Video Enhancer 强加您视频的分辨率以极大的提升其品质,它可以调用绝大多数 VirtualDub 滤镜及任意编解码器进行重压缩处理。 Video Enhancer (视频马赛克还原) 使用说明: 1、启动Video Enhancer,进入Video Enhancer的主界面 2、在输入视频文件的右下方有一个浏览按钮,点击浏览,选择要处理的视频 3、在浏览的下面有一个多文件,意思是Video Enhancer可以同时处理多个视频文件,单击多文件,添加其它要处理的文件4、单击添加,选择其它的要处理的文件,然后单击确定,回到主界面: 5、接下来有一个超分辨率模式,如果你的电脑配置还行的话,选择上面的质量优先模式,否则选择下面的速度优先。这是视频处理过程的同插值计算方法。 6、在输出文件的右下面的浏览,是让你选择处理好的文件存放路径,最好选择一个空间比较大的地方,因为输出的AVI占用磁盘空间比较大,具体要看同的编码。 7、再下面的帧大小就是分辨率的设置,同的文件需求,要设置同大小。注意要设定合适的比例,否则画面会变形的,如果你知道比率,可以使用高级模式(主界面的右边部分,左边下面的简单模式与高级模式转换按钮),选择超分辨率,有一个;保持纵横比,勾选。 看到红色矩形框框住的吗?选择它。 9、选定后,单击右边的配置,encode表示编码,也就是视频处理符合什么标准,下面是你可以选择的标准:是你处理好的视频用播放器播放,需要什么解码器。mode指的是压缩模式,使用恒定比率还是使用其它的方式。我们选择第一个恒定比率,下面就会出现比特率的设置,bitrate就是比特率的意思。 10、设置好后,再进行音频设置,根据你对音频的要求,选择相应的声音品质。 11、Video Enhancer的功能强大还在于有很多相关的VD滤镜,进入到高级模式中就会有很多滤镜,只要选择VD滤镜,就会出现滤镜选项,这些设置好后,就可点开始了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值