来源:机器之心

本文约1500字,建议阅读5分钟

还在用马赛克的方式隐藏密码?小心被「看穿」。

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

再比如:

看图找马赛克!(找不到请看右侧原图)

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

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

项目地址:

https://github.com/beurtschipper/Depix

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

马赛克打得够严实了,不过 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 的查找图像,例如:

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

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

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

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

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

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

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

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

参考链接:

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

编辑:文婧

校对:汪雨晴

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星相关推荐

  1. 你还在以为打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

    还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克!(找不到请看右侧原图) 但是, ...

  2. 震惊!AI居然轻松消除马赛克-文字增强,GitHub开源项目上线三天收获近7000星

    还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克!(找不到请看右侧原图) 但是, ...

  3. pulse 去马赛克软件_打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星...

    机器之心报道 作者:魔王.小舟 还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克 ...

  4. 打马赛克就安全了吗?GitHub热榜的“AI消除马赛克”,上线三天收获近万star

    还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克!(找不到请看右侧原图) 但是, ...

  5. 本周AI热点回顾:AI消除马赛克神器公布;Github黑暗模式正式发布;「中国AlphaFold」创生!

    点击左上方蓝字关注我们 01 打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信 ...

  6. CSDN开发者周刊第 20 期:Google 下一代操作系统 Fuchsia 源码正式公开;AI 消除马赛克 效果惊人

    CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击 Star(CodeChina)! 本周热门项目 1.红帽停止维护 CentOS 8,创始人另起炉灶 12 月 8 日, ...

  7. 打马赛克就安全了吗?AI消除马赛克,GitHub霸榜

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 来源:机器之心 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找 ...

  8. 特斯拉AI总监用300行代码实现“迷你版GPT”,上线GitHub三天收获3.3k星

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI "GPT并不是一个复杂的模型." 前OpenAI科学家.现任特斯拉AI总监的Andrej Karpathy在自己的Gi ...

  9. 2022 极术通讯-“周易”NPU软件开源项目上线,适配100多种AI算法

    导读:极术社区推出极术通讯,引入行业媒体和技术社区.咨询机构优质内容,定期分享产业技术趋势与市场应用热点. 芯方向 安谋科技"周易"NPU软件开源项目正式上线,解决你的" ...

最新文章

  1. poj1222开关问题
  2. BZOJ 4032: [HEOI2015]最短不公共子串(后缀自动机+记忆化搜索)
  3. C++ 标准库类型 list
  4. html表单输入的文本框的值,网页设计关于表单输入框的技巧代码
  5. C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考...
  6. 算法题10 最长等差序列问题
  7. 四川教育考试网全国计算机,四川教育考试院
  8. JS switch 分支语句
  9. 若依集成jsencrypt实现密码加密传输方式
  10. python中日期和时间格式化输出的方法
  11. thinkphp 中英文语言包
  12. GIMP的Path的import和export
  13. 2020MathorCup数学建模比赛A题D题思路
  14. 学习rfc 7432 多归场景
  15. java 切面 不执行,Spring AOP 切面没有执行
  16. 常用三极管的区别 9012 9013 9014 9015 8550 8050
  17. win7 虚拟wifi服务器,在win7下建立虚拟wifi
  18. 硬件nat关闭还是开启_卡顿未必怪硬件,Win10玩游戏不可不知的技巧
  19. 酷我音乐盒在听一遍就自己默认下载…
  20. 汇兑损益中间科目,系统情况

热门文章

  1. iqoo升级鸿蒙,vivo iQOO 3升级更新PD1955_A_1.12.27固件rom全量刷机包
  2. MySQL主从复制原理图
  3. 第二周Access总结
  4. 搜狗输入法电脑版SougouPhoneService占用adb进程的问题
  5. 《Imperfect C++中文版》——2.1 对象生命周期
  6. centos6.5下部署用于生产的hadoop,并使用C语言API连接hadoop
  7. Zone.js 简介 抛砖引玉
  8. 只改一个值!马上加快宽带上网速度
  9. __block的初步用法
  10. Android studio 使用心得(六)---android studio 如何加载.so文件