[把文字写进像素里] 基于像素微调实现的文字隐写术

2017-01-27 13:25:40 +08:00
 Aaron99

引言

先看下面这张图像:

这张看似“纯黑色”的图像中其实隐藏了一份完整版的 GPL V3 协议的中文译文,而且文字信息就隐藏在像素之间。想要获得这幅图像的密文信息,我们只需要打开( https://hide.aoaoao.me),选择这张图像,即可解密出完整内容:

如果想要生成这种带有密文的图像,只需要选择已有的图像,填写密文,即可生成。这样的隐写术不是直接讲内容写入文件数据,而是通过微调像素的色值来达到存放数据的目的,由于只是微调,因此正常人很难察觉其中的变化。

原理

  1. 将待处理文本转换为二进制格式,并补足 16 位连接起来
  2. 遍历图像的每个像素的每个色彩通道值,与之前的二进制数据相对应,如果为 1 ,则微调当前色彩值至最近的偶数,反之为奇数
  3. 在图像开始和文本写入结束时分别加入特殊标记以便后期读取识别

理论上一张图像可以存放的字数(中英文都算为1个字)=(图像长像素数X图像宽像素数-34)/16。比如:一张500像素X500像素的图像可以存放约15万字。

我用一些图像测试了一下,大家可以对比对比:

原图:

下图为写入《独立宣言》中文译文后的图像:

源代码

GitHub:https://github.com/HFO4/HideByPixel

Demo:https://hide.aoaoao.me/

(代码匆忙写成,有许多 Bug ,时不时会抽风,请多多包涵)

8048 次点击
所在节点    分享创造
64 条回复
netpart1
2017-01-27 15:03:51 +08:00
这个东西修改一下,就有意义,利用 16 数字存放文字, 16 个字节,,表示两个字节完整文字,也就是 4 个像素,这样计算机可以通过图片,直接获取图片图像意义
netpart1
2017-01-27 15:09:16 +08:00
你这个东西除了发暗杀 令,而且逃避责任,有用,其他没有意义
Aaron99
2017-01-27 15:10:04 +08:00
@netpart1 本来就是。。搞着玩的 = =
creamiced
2017-01-27 15:27:07 +08:00
数字水印
netpart1
2017-01-27 15:33:54 +08:00
楼主,你可以申请专利了,用这个 js 加密,绝对不会被破解,代码写在图片中, flash 加载图片,解码,运行代码,然后 flas 写很复杂,而且混淆,这样代码被破解可能性,大大减小
Aaron99
2017-01-27 15:37:15 +08:00
@netpart1 用单纯的图像存放代码国外之前有人搞过 QAQ
aitaii
2017-01-27 15:59:03 +08:00
porn 可是推动互联网技术发展的一大动力呀
netpart1
2017-01-27 16:31:45 +08:00
想想希拉里被黑,就是通过这种方式,俄罗斯黑客先上传,足够多代码图片,然后经过一个可执行漏洞,然后就被黑了,而且找不到证据
Daniel65536
2017-01-27 17:24:22 +08:00
如果想做图种的话,直接搞二维码的模式啊,用偶数方块代表黑色区域,奇数方块代表白色区域,鲁棒性好很多的。

另外一个有效的思路是搞傅立叶变换来写,鲁棒性更好
ashfinal
2017-01-27 18:25:34 +08:00
关注一下
imn1
2017-01-27 19:23:19 +08:00
linux, android, windows 都已经有现成的了,果家不清楚,你这个比起人家有什么优势么?
Aaron99
2017-01-27 19:46:10 +08:00
@imn1 什么?
Aaron99
2017-01-27 20:05:15 +08:00
@imn1 我们说的。。是一个东西吗?
maomo
2017-01-27 21:26:33 +08:00
建议百度一下图像隐写,学术界论文一大把。你这个就是最简单的 LSB 隐写,毫无优势
kaneg
2017-01-27 21:27:41 +08:00
据说有公司在内部论坛里启用了此类技术来标示个人信息,无论截图, ps ,还是压缩,信息都不会丢失,如果网上有人传播,只要一还原就知道是谁泄密的。
Aaron99
2017-01-27 21:39:01 +08:00
@kaneg 哪个是把图像隐藏在其中,大众点评用过
lslqtz
2017-01-27 21:45:36 +08:00
群里看到的 支持
Arcus
2017-01-27 21:47:57 +08:00
感觉鲁棒性不强
xuboying
2017-01-27 21:48:32 +08:00
数字水印不是干这个的么,楼主造轮子么
Aaron99
2017-01-27 21:52:31 +08:00
@xuboying 可能的确有不足的地方,但确实是我自己想出来的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX