零宽度字符水印隐藏技术

Author Avatar
Tr0y 4月 20, 2018 16:58:20 本文共 361 字
  • 文为知己者书
  • 在其它设备中阅读本文章

零宽度字符是隐藏不显示的,也是不可打印的,也就是说这种字符用大多数程序或编辑器是看不到的。最常见的是零宽度空格,它是 Unicode 字符空格,就像如果在两个字母间加一个零宽度空格,该空格是不可见的,表面上两个字母还是挨在一起的。就比如说,我在这句话中插入了 10 个零宽度空格,你能看到吗?(For example, I’ve inserted 10 zero-width spaces into this sentence, can you tell?)

介绍

在 fb 上看到了一个很有意思的文章

大意是,可以通过零宽度字符来隐藏一些信息,达到一些目的,比如隐写,或者水印。某种程度上来说,我们这里所说的零宽度字符可作为识别某些用户身份的“指纹”数据,也可非常方便地追溯到某些秘密数据的泄露源。

我的实现是把要隐藏的信息转为 bin,然后 1 替换为 e2808b0 替换为 e2808c

然后分别插到载体消息中的每一个字符后面。若载体消息短于隐藏信息的二进制,那就把多余的都塞到载体消息的最后一个字符前面,这样在复制的时候不至于掉少一些隐藏字符

还原的代码很简单,一看就知

代码

GayHub

End

What do you think?

本文标题: 零宽度字符水印隐藏技术
原始链接: http://www.tr0y.wang/2018/04/20/ZeroWidthSpacesHiden/
发布时间: 2018.04.20-16:58
最后更新: 2018.11.03-21:10
版权声明: 本站文章均采用CC BY-NC-SA 4.0协议进行许可。转载请注明出处!