公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

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

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

此前,一个名为 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://github.com/beurtschipper/Depix

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

本文转载自:「机器之心」,原文:https://tinyurl.com/fj9ebtfy,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

你可能还喜欢

点击下方图片即可阅读

推荐一款超实用的查看容器系统资源真实使用情况的工具 topic


点击上方图片,『美团|饿了么』外卖红包天天免费领

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

密码打码就安全了吗?这款星标 20K 的去 『马赛克』 开源神器,用 AI 一秒还原高清原图!...相关推荐

  1. 有码变高清!AI一秒还原马赛克,杜克大学出品

    作者 | 贝爽 转自:雷锋网(leiphone-sz) 论文地址:https://arxiv.org/pdf/2003.03808.pdf 像素不够,后期修图来凑? 在知乎搜索低像素修图,结果求助帖多 ...

  2. 太可怕啦!AI 一秒还原马赛克,有码变高清

    作者 | 贝爽 转自:雷锋网(leiphone-sz) 论文地址:https://arxiv.org/pdf/2003.03808.pdf 像素不够,后期修图来凑? 在知乎搜索低像素修图,结果求助帖多 ...

  3. 太可怕,有码变高清!AI 一秒还原马赛克?

    作者 | 贝爽 转自:雷锋网(leiphone-sz) 论文地址:https://arxiv.org/pdf/2003.03808.pdf 像素不够,后期修图来凑? 在知乎搜索低像素修图,结果求助帖多 ...

  4. 有码变高清!AI一秒还原马赛克

    像素不够,后期修图来凑? 在知乎搜索低像素修图,结果求助帖多到刷不完,而且从PS技巧.插件神器到各类修图App教程多到眼花缭乱,重点是效果不知道会怎么样. 不过,近日杜克大学(Duke Univers ...

  5. GitHub开源神器!再厚的马赛克都能被扒干净?这款去码神器火了。。。

    点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 来自:扩展迷EXTFANS(ID:infinitydaily) 有人说,马赛 ...

  6. 电子漫画系列套图更新11张,共计83张,附高清无码下载链接

    编辑:晓宇,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 电子漫画 电子漫画系列作品,从18年开始陆陆续续更新了多次,新关注的小伙伴可能还不知道在哪里获取,好多人在后台找我要,很多 ...

  7. BLE-NRF51822教程10—动态密码(配对码)

    本讲教程也是在 sdk中的的uart例子 的基础上修改实现动态密码(其实是配对码)的功能.Uart例子在以下目录中 XXX\Keil_v5\ARM\Pack\NordicSemiconductor\n ...

  8. 模拟用户登录过程,验证用户名、密码和校验码,如果全部正确提示用户登录成功,否则,提示用户相关输入错误

    要求:模拟用户登录过程,验证用户名.密码和校验码,如果全部正确提示用户登录成功,否则,提示用户相关输入错误. 目的:掌握登录校验的规则和原理. //登录验证 #include<stdio.h&g ...

  9. 开启微软 Outlook 邮箱 POP, IMAP, SMTP 服务和获取服务密码(授权码)

    微软 Outlook 邮箱各种服务详细信息 服务类型 服务器地址 端口 加密方法 POP outlook.office365.com 995 TLS IMAP outlook.office365.co ...

最新文章

  1. [PyQt4]项目开发中遇到的错误与解决办法
  2. 基因课 15天入门生物信息(2021年) 第三天 Linux基础命令(3)
  3. XamarinSQLite教程添加列
  4. php 中文相等_php判断字符串是否相等
  5. 【Python】pandas 1.3版本主要更新内容一览
  6. 关于H3C路由配置VLAN的问题
  7. 使用Elasticsearch 构建 .NET 企业级搜索
  8. mysql数据库 auto_increment_mysql数据库 auto_increment
  9. 【转】const_cast
  10. 计算机考试题目czt,8级计算机组成原理本科期末试题a带答案(史岚).docx
  11. java分布式集群框架_Cacheonix——Java的分布式集群缓存框架
  12. 【java设计模式】之 抽象工厂(Abstract Factory)模式
  13. 零元学Expression Blend 4 - Chapter 9 用实例了解布局容器系列-「Canvas」
  14. 学习笔记1:迟滞电压比较器
  15. 计算机专业学不学画法几何,给新手们学CAD的建议
  16. 数据分析案例(4)京东数据分析项目
  17. 《灌篮高手》——一部看了n遍的动漫
  18. 亚商投资顾问 早餐FM/0913
  19. MacBook键盘锁定、按键失效问题
  20. mysql知识系列:报错right syntax to use near IDENTIFIED BY

热门文章

  1. 单片机实现跑马灯c语言程序,用单片机编写几种跑马灯程序
  2. 【社区周会】2021-06-08 内容概要
  3. Kafka命令及相关参数解释
  4. C语言经典例题100道(辗转相除求最大公约数和最小公倍数)
  5. 桐乡的java培训,桐乡java编程培训,桐乡java培训费用,桐乡java培训完了好不好就业...
  6. ZYPlayer隐藏功能!再不看就被删掉了!
  7. 51单片机使用HC-SR501人体红外感应器C语言
  8. 写给Java 工程师们一封信
  9. 【审稿意见回复和修改稿上传-流程】
  10. ubuntu系统无法识别到U盘