隐写术:如何正确保护文章的版权?

简介: 隐写术:如何正确保护文章的版权?

摄影:产品经理锅贴

首先,我们来看一段文字:

一我日是一青技南是我一是个青每南天我更是新青的南栏我目是,青希南望我做是到青在南每我天是几青分南钟我让是你青获南得我提是高青。南

看完以后,你有什么想法?你会不会觉得我是自恋狂?神经病?复读机?脸滚键盘?

很好,那么再看下面这一句话:

一‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌日‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌一‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍技‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌是‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌一‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌个‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍每‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌天‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌更‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌新‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍的‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌栏‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌目‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌,‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍希‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌望‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌做‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌到‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍在‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌每‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌天‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌几‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍分‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌钟‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌让‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌你‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍获‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌得‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌提‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌高‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍。‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌

是不是正常多了?

但是如果我说这两段话,实际上是一样的,你信不信?

现在有4个中文汉字:我是青南,首先介绍Python的ord函数,它可以查询Unicode字符对应的Unicode码

>>> ord('我')
25105
>>> ord('是')
26159
>>> ord('青')
38738
>>> ord('南')
21335

接下来,介绍另一个函数chr。它的作用是把Unicode编码转换为Unicode字符。

例如:

>>> chr(21335)
'南'
>>> chr(38738)
'青'

最后,介绍bin函数,它可以把十进制数字转换为二进制数字:

>>> bin(6)
'0b110'
>>> bin(57)
'0b111001'

以上就是本文涉及到的全部知识。下面,开始转换。

由于Unicode是十进制数字,那么就能进一步转换为二进制数字:

>>> bin(25105)
'0b110001000010001'

把前面的0b去掉:

>>> bin(25105)[2:]
'110001000010001'

那么,我是青南转换为二进制以后,分别为:

>>> for char in '我是青南':
...  print(char, bin(ord(char))[2:])
...
我 110001000010001
是 110011000101111
青 1001011101010010
南 101001101010111

那么原来那个看起来很混乱的句子是怎么生成的呢?

from itertools import cycle
signature = '我是青南'
text = '一日一技是一个每天更新的栏目,希望做到在每天几分钟让你获得提高。'
complex_text = ''
for word, sig in zip(text, cycle(signature)):
    complex_text = complex_text + word + sig
print(complex_text)

运行效果如下图所示:

那么如果把我是青南先转换为他们对应的二进制字符串,然后再穿插到原文中,效果就会变成这样:

from itertools import cycle
signature_bin_list = ['110001000010001',
                      '110011000101111',
                      '1001011101010010',
                      '101001101010111']
text = '一日一技是一个每天更新的栏目,希望做到在每天几分钟让你获得提高。'
complex_text = ''
for word, sig in zip(text, cycle(signature_bin_list)):
    complex_text = complex_text + word + sig
print(complex_text)

运行效果如下:

到目前为止,你肯定不知道我在干什么。

下面,我将会介绍两个神奇的数字:

8204
8205

如果我使用chr把这两个数字转换为Unicode字符会怎么样?

我们来试一试:

很奇怪对吧?什么东西都没有?难道这两个数字转换为Unicode字符以后,都是空格??

没事,我们把字符串形式的二进制数字中的1替换为chr(8204),把0替换为chr(8025)

from itertools import cycle
signature_bin_list = ['110001000010001',
                      '110011000101111',
                      '1001011101010010',
                      '101001101010111']
text = '一日一技是一个每天更新的栏目,希望做到在每天几分钟让你获得提高。'
complex_text = ''
for word, sig in zip(text, cycle(signature_bin_list)):
    complex_text = complex_text + word + sig.replace('1', chr(8204)).replace('0', chr(8205))
print(complex_text)

运行效果是什么样的?请看下面这张图:

奇奇怪怪的符号没有了,一切都变得干干净净,就像下面这样:

一‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌日‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌一‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍技‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌是‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌一‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌个‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍每‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌天‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌更‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌新‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍的‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌栏‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌目‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌,‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍希‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌望‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌做‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌到‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍在‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌每‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌天‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌几‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍分‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌钟‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌让‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌你‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍获‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌得‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌提‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌高‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍。‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌

现在,你在电脑上把这一段话复制下来,存到记事本里面,效果如下图所示:

看起来很正常对吧。那么现在,用vim把它打开,你看到的将会是这样的:

在网页上面,一切都正常,但是一旦有人复制了你的内容,直接转载到了它自己的网站上。那么你可以到法院去起诉他了,因为这些没有宽度的符号,就是证据。

在下一次的文章中,我将会讲到,如何把本文的过程你过来,把隐藏的信息提取出来。


感谢机械工业出版社的赞助,文末送出4本《从零开始学Selenium自动化测试(基于Python·视频教学版)》。本书基于Python语言,系统地介绍了Selenium自动化测试的相关知识及应用。书中的大部分知识点都匹配了可独立运行的典型实例,便于读者学习与实践。另外,为了帮助读者更加高效、直观地学习,本书特意提供了约10小时基础操作配套教学视频。相信读者通过系统地学习本书内容,可以全面掌握Selenium 3自动化测试技术。

目录
相关文章
|
5月前
|
安全 数据安全/隐私保护 Python
版权保卫战的新武器!揭秘数字水印如何成为知识产权的守护神!
【8月更文挑战第22天】数字水印技术在知识产权保护中至关重要。它通过在数字媒体中嵌入不可见信息(如版权标识),在不影响原内容的前提下实现作品的版权保护、防篡改及非法分发追踪。本文将概述数字水印的概念、技术原理(包括空间域与频域方法),并提供Python代码示例展示水印的嵌入与提取过程。此外,还将分享一个出版社如何运用数字水印成功维护自身版权的真实案例,以此展现数字水印在实际应用中的价值与潜力。
163 0
|
8月前
|
人工智能
AIGC时代的版权纠纷将何去何从?
AIGC时代的版权纠纷将何去何从?
105 2
AIGC时代的版权纠纷将何去何从?
|
小程序
6款无版权可商用的图片网站
6款无版权可商用的图片网站
357 0
6款无版权可商用的图片网站
|
搜索推荐
速查!你的网站有没有版权问题!
快跟随小云一起来看看初创企业在搭建品牌官网时该如何规避常见的“版权陷阱”吧——
173 0
速查!你的网站有没有版权问题!
|
定位技术
版权与著作权有什么区别?
一文读懂版权与著作权的差别
478 0
|
前端开发 安全 开发者
辛辛苦苦原创的网站,被抄袭了怎么办?
辛辛苦苦原创的网站,被抄袭了怎么办?
274 0
辛辛苦苦原创的网站,被抄袭了怎么办?
|
弹性计算 云计算
发表文章
ecs攻略里面真的很好,每一步都有教程,对于刚学、刚接触这部门的同学真的很友好,很多人都在夸它,云计算ecs是一种高效的、又相对简单的、处理能力也好可以弹性伸缩的一种计算机服务。对我的理解来看,我认为ecs最好的好处就是稳定,云计算ecs的实战例子成功的概率能够高达99%左右,而且云盘的数据的可靠性也占了很高的比例,达到了有99.9999%,更主要的是数据的备份和数据的恢复比以前的传统的更加方便、省时间。还有就是很简单上手,很容易操作,里面都有很多的步骤,手把手教我用ECS.据我了解,云服务器更是可以提供免费的防护、木马病毒的查杀、防暴力破解等服务。我也有在老师上课中听到老师有说ecs成本很低
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(上)
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(上)
151 0
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(上)
|
搜索推荐
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(下)
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(下)
115 0
程序人生 - 为了避免惹上官司,你可以在这些免版权图片网站里寻找素材(下)
|
Web App开发
令人心醉的美:人生必看短片《盖章》
火爆Youtube的短片《Validation》,相信看完这个16分钟的短片,大家会有一些新的生活态度和想法,至少会想要让自己和身边的人扬起一个最真诚的微笑。         摘自:http://blog.
1064 0

热门文章

最新文章