⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 开源最前线(ID:OpenSourceTop) 「开源最前线」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

如果你认为将密码或其他私密文本数据像素化就能保护它们不被窥见,那你真是太天真了,你的信息并没有你想象的那么安全。像素化(也称为马赛克)是一种常用的手段,可以大幅降低图像敏感区域的分辨率来隐藏信息。

近年来马赛克这项技术被广泛使用,但它的好日子已经不多了,最近一个新型的人工智能工具“Depix”横空出世,短短时间就在Github上标星 18.4K

  • Github地址:https://github.com/beurtschipper

Depix的开发人员Sipke Mellema是一个信息安全顾问,他表示:“我见过一些公司把内部文件中的密码像素化,没有工具可以从这些图像中恢复密码,于是我创建了一个。”该工具适用于使用线性方框滤波器(linear box filter)创建的像素化图像。

Depix的使用

要准备一个用于Depix处理的像素化文本序列,首先以单个矩形格式从截图图像中剪切相关的像素化块,然后将带有预期字符的De Bruijn序列粘贴到具有相同字体(文本大小、字体、颜色等)编辑器中。接下来,对序列进行截图,最好使用之前的序列截图,尽可能使用和像素化图像相同的截图工具。

最后,简单地运行

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

恢复之后的效果和原图的对比结果:

但是,项目作者没有选择创建潜在字体的查找表,只是简单使用待处理字符的德布鲁因序列,将其粘贴到相同的编辑器中,然后截图。该截图可以用作相似 block 的查找图像,例如:

德布鲁因序列包括待处理字符的所有双字符组合。在以下测试图像中,Depix算法无法找到(o)的一部分。这是因为在搜索图像中,搜索block还包含下一个字母(「d」)的一部分,但在原始图像中这里有个空格。

不过对于大多数像素化的图像,Depix都可以找个单个的匹配结果,它假定这些都是正确的。然后将周围的多个匹配块匹配,然后再与马赛克图像相同的几何距离进行比较。这些匹配也被认为是正确的。

当正确的块没有更多的几何匹配后,它将直接输出所有正确的块。对于多匹配块,它输出所有匹配的平均值。它的输出还远远不够完美,但它的性能相当好。下图显示了一个带有随机字符的测试图像,大多数字符都可以正确破解出来。

Sipke Mellema还表示Depix技术类似于哈希破解,利用ECB的使用和已知明文攻击的使用。他建议人们对于敏感数据还是尽量不要用Depix。

文章目录
  1. 1. Depix的使用