图片指定区域根据rgb值计算出对应的坐标地址_【水文】震惊!高考期间,这位学生居然能通过图片隐写实现文字通信!...
图片隐写术,是一种将信息藏在图片中的技术。这个技术的前景非常广阔,在网络安全、神经网络对抗攻击等都有一定应用。
2020年7月10日,我开发出图片隐写工具——TPEncoder v1.0.2,可以将海量信息藏匿在图片中。写完还迫不及待地跟别人试了试。
今天山东还在高考,所以标题没啥毛病。(狗头)
据计算,大小为
的肉眼意义上的纯色图片,可以储存一篇三万七千余字的论文。比如下图:
由于知乎无法上传bmp格式,因此损失了一些精度,直接解码会出现乱码这张图藏着dio的著名台词:
ジョジョ、人間ってのは能力に限界があるな。俺が短い人生で学んだことは、人間は策を弄 すれば弄するほど、予期せぬ事態で策が崩れ去るってことだ。人間を超えるものにならねばな。俺は、人間をやめるぞ、ジョジョ!俺は、人間をやめるぞ、ジョジョ工程源代码与可执行程序:
Text-Picture Encodergithub.com理论基础
首先,无论是中文、日文、英文还是什么其他语言的字符,在计算机中都有对应的二进制编码方式,如unicode:
unicode编码下的“ジョジョ”为八个字节而位图中每一个像素也是二进制的,根据RGB的值存储的——第一个字节是B的值,范围为
;第二个字节是G的值,范围为;第三个字节是R的值,范围为。忘记的朋友可以戳这个链接一下:刘冬煜:七、位图的读入方法zhuanlan.zhihu.com如果我们将每一个字符的值直接输出到位图的RGB中,最简单的文本转图片编码器就完成了。不过根据像素的值很容易推断出其内容,比如下图中,用工具直接加密源代码:
工具中-d和-s选项都使用0x000000时,任务退化为将每一个字符的值直接作为RGB输出到图片文件中细心的朋友可以看出,由于一个像素是三个字节,即三个字符的编码值共同决定的,因此最接近灰色的位置可能是由小写字母字符('a'-'z',ASCII取值范围
)、大括号('{' '}',ASCII分别为123和125)、位或符号('|',ASCII为124)、点引号('`',ASCII为126)中任意三个构成的三元组;而明亮的部分则可能是中文注释、日文假名等,可以比较直观地看出这是代码文件。再比如这篇我的这篇关于摇滚音乐文化的论文:
图片里中英文的分界非常明确——明亮为中文,灰暗为英文因此我们希望在这个最简单的编码器中有所加强,使得输出的图片尽可能地接近纯色;或者换句话说,相邻两个像素之间颜色的变化不能太过明显。
有三个维度扰动限制的文本图片编码器
没有扰动限制时,每个像素的取值范围为
,若把每个像素看作一个三维向量的话,两个像素向量差的模长决定了二者在视觉上的差距:颜色空间中的几个点及其坐标因此,如果将每个像素RGB值的可变范围从
变为,即每个像素实际存储的比特数从24下降到15:加扰动限制前后实际有效比特的区别虽然需要更大的图片来存储,但有两点更加显著的变化:
如果仅仅是全黑的图片就没意思了,我们还可以修改默认像素颜色。
默认像素颜色的加入
这一步就非常容易了,只需要用户自定义基础值,而不是简单的RGB全0即可。不过需要检查基础值与扰动最大限度的和不能超过255:
通过编码器,实现jojo著名台词的图片隐写工具的展望
除纯色图片隐写之外,编码器工具还可以实现彩色位图的隐写——即默认RGB值并非固定,而是根据额外输入图片里每个位置的RGB值而变化。这样生成的fake image,隐写更难被发现。
图片隐写的起点也未必是左上角像素,可以是任意指定的位置(只要没有超过图片大小),其余像素也可以是随机噪声,以混淆视听。
这些功能,工具暂时还没有实现,不过也比较容易去完成。敬请期待!
总结
以上是生活随笔为你收集整理的图片指定区域根据rgb值计算出对应的坐标地址_【水文】震惊!高考期间,这位学生居然能通过图片隐写实现文字通信!...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: mvd没什么每次参数双都多一个逗号_学服
- 下一篇: 合成孔径成像算法与实现_声呐二维成像技术