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

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

再比如:

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

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

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

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

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

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

如何使用

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

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

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

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

执行命令:

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 的输出并不完美,但已经算不错了。

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

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

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

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

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

    来源:机器之心 本文约1500字,建议阅读5分钟 还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比 ...

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

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

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

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

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

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

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

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

  6. 零基础学C++进腾讯,这份GitHub热榜的「从入门到高薪」请你收下

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 零基础想学C++进大厂?这件事其实没那么难. 一位国内在读研究生的C++学习指南本月初登上了Github热榜,目前已经收割2000星. 避 ...

  7. GitHub 热榜:中国博士开发可交互全球疫情地图,登上柳叶刀!

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 转自量子位,作者郭一璞 一个多月前,当你被困在家里无法出门的时候,可能每天早上第一件事就是看看 ...

  8. GitHub热榜,零基础学C++教程

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 零基 ...

  9. 把命令行玩成“迷你谷歌”:可搜索、计算,还能翻译 | GitHub热榜

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在用浏览器打开谷歌.百度 ...

最新文章

  1. Rocksdb 写流程,读流程,WAL文件,MANIFEST文件,ColumnFamily,Memtable,SST文件原理详解
  2. SQL Server 2005系列教学(14) 用户管理
  3. CSS设置像文字一样的按钮
  4. 分数化简_分数应用题七讲 (一) 图示法解分数应用题
  5. spring mvc controller json数据
  6. 写给考完SDOI2016R2D1的自己
  7. Python学习 Day7 Python3 函数
  8. 集成Slice2Java插件
  9. 轮式联合收割机液压系统设计
  10. 折躬仁人 叠翠匠心 中国电信首款5G专属定制高端机发布
  11. python复利计算_年化收益率及Python计算
  12. python更改pip源地址
  13. SSRS报表服务随笔(rdl报表服务)-报表结构与样式
  14. Ubuntu安装企业微信解决中文字体乱码的问题
  15. 记录一次利用python调用chrome爬取天眼查网址工商信息的过程
  16. 知识图谱入门 (九) 知识问答
  17. 必备武器-skycc营销软件
  18. 安卓手机”应用未安装“解决办法
  19. 小米平板4能装Linux系统吗,终于迎来它!小米平板4进行重大更新
  20. Mission Planner中级应用(APM或PIX飞控)1——振动测量

热门文章

  1. 哈佛结构与冯诺伊曼结构
  2. Office EXCEL如何批量把以文本形式存储的数字转换为数字
  3. 最优秀的六种造字方法
  4. 关于股票的一些学习书籍
  5. 生产制造词汇BOM、MPS、MRP、APS、MES、WMS、JIT、VMI
  6. NodeBB实现登录企业账号系统(简单实现,非CAS登录)
  7. 13.深入浅出:负反馈放大电路稳定性(自激振荡)——参考《模拟电子技术基础》清华大学华成英主讲
  8. 啡鸟集:什么样的咖啡豆,才是好的咖啡豆?
  9. 【猿说VUE】条件渲染,绝代双骄之 v-if 和v-show
  10. win7(32bit)下完整的搭建apache(2.2.x)+openssl(0.9.6-1.0.1升级)过程