一种对文本内容进行数字水印加密保护的方法及装置与流程

文档序号:14555251阅读:275来源:国知局
一种对文本内容进行数字水印加密保护的方法及装置与流程

本发明涉及一种加密方法,尤其涉及一种对文本内容进行数字水印加密保护的方法及装置,属于数字加密领域。



背景技术:

随着计算机网络技术的迅速发展,文本内容的取得已经变得非常方便,因为文本内容易于复制和更改的特性,使得版权保护的问题长期阻碍着数字出版行业的发展。

在计算机、电子设备中的任何文件信息都是以二进制代码存储的,通过二进制文件存取技术,可以打开所有的文件并读取其中的信息。所以以二进制存储的信息,很容易被他人拷贝或截获,从而造成文本信息的丢失。

数字出版的电子词典是以文本信息进行存储数据的,存储的文本信息可以轻易的拷贝,因此为了更好的保护版权,往往需要通过在文本信息中嵌入水印或进行字符隐藏或加密进行保护。

在文本中嵌入水印包括用文本字符在排版中的字间距、行间距、标点符号混用和字符大小写等编码位置信息,来达到隐藏秘密信息的目的,文本主体含义不会有变化。它主要是利用人类视觉系统的特点,很难通过肉眼进行辨别。主要是根据文本排版中字符间空格数、中英文标点替换、调整行距来实现隐形信息的嵌入;这类方法在现有文本中嵌入水印虽然不改变文本内容,但是嵌入的水印容易被软件检测到,甚至可能被逆向还原出隐藏信息。

现有的通过改变字符编码的方式进行加密的方法,都较为简单,如中国专利号为201010622059.6的发明专利公开了一种文本信息隐藏方法及装置,通过修改原字体文件中的字形索引与字符编码之间的映射关系来生成新字体文件;根据新字体文件修改所述文本信息,并将修改的文本信息写入电子文档中;在打开电子文档时,从新字体文件中获取所述文本信息中的字符的字形描述数据,并根据获取的字形描述数据显示所述文本信息。通过修改字符编码的索引将原文本用其他文字代替显示以保护版权,但是这种方法并不能实现加密和解密,无法对数据来源进行水印保护,仅仅是隐藏文本,隐藏后无法对数据还原。



技术实现要素:

为了解决现有技术中存在的文本内容版权保护困难、易破解的问题,本发明提供了一种对文本内容进行数字水印加密保护的方法及装置,通过对原字符的字符编码进行重新加密编码并携带水印信息,使用自定义字体来展现加密后的字符编码,使得显示效果不受影响,但是文字内容为加密内容且带有不可伪造的水印信息,实现版权内容的原始数据保护目的。

一方面,本发明提供了一种对文本内容进行数字水印加密保护的方法,其加密方法包括:

s1:将原始文本内的字符去除在后的重复字符,生成一个由不重复的字符组成的数组a,数组a内每个字符的序号以首次在原文本内容中出现的顺序为序。

s2:将所述数组a中的字符逐一转换为字符编码a(n),对所述字符编码a(n)再进行逐一加密,得到加密后的新字符编码b(n)。

s3:对新字符编码b(n)再转换得到字符编码c(n),用新的字符编码c(n)映射所述数组a中的字符,生成一个新字体,使字符编码c(n)显示为数组a中字符的字形。

s4:循环转换完成文本信息的加密。

所述s2中字符编码的加密方法为:对数组a中的每个字符的字符编码a(n)逐一进行可逆变换,变为新字符编码b(n)=encrypt(a(n),copyright,secretkey,n),

其中,copyright为有关版权的水印信息,secretkey为密钥,n为字符首次出现的序号。

所述加密采用可逆的加密方式,可逆获取a(n)=decrypt(b(n),copyright,secretkey,n)。

所述s3中字符编码c的生成方法为:

设字符编码c(n)=b(n)+d(n),d(n)为二进制数值,d(n)默认为0,如果新字符编码c(n)与前面的某个字符编码c(1,2,3,…,n-1)相同,或者c(n)字符编码属于保留字符范围,如"<"、">"、"&"等字符,则不断尝试改变d(n)以获得最终符合条件的字符编码c(n)。

所述d(n)改变原则为:不断+1或者-1,优选的,如果b(n)&32768为0,不断+1;如果b(n)&32768为1,不断-1,最终使得c(n)成为一个与前面的任何一个字符不同的编码且c(n)不属于保留字符范围。

将非零的d(n)值序列化为一个文本字符串后保存为corr值,作为附属信息与待显示的文本内容一起保存。

所述的字符编码可以采用unicode、utf-8、utf-16或utf-32等公知的格式编码。

另一方面,本发明提供了一种对文本内容进行解密的方法,所述解密方法是所述加密方法的逆过程,具体解密方法包括:

通过服务器或解密模块可获取任何加密文字的解密版本,解密过程需要提供授权水印信息、加密文字编码c(n)、加密文字变码d(n)、加密文字首次出现的序号n;

如果授权水印信息正确,则返回字符编码a(n)=decrypt(c(n)-d(n),copyright,secretkey,n);

通过循环解密可将字符编码a(n)逐一还原显示。

本发明通过服务器接口或者解密模块对加密字符编码进行解密,解密过程中获取被授权方提供的授权水印信息、加密文字编码以及加密文字变码、加密文字首次出现的序列号以及服务器或解密模块自带的密钥进行解密,获得字符编码a(n)=decrypt(c(n)-d(n),copyright,secretkey,n)。

本发明还提供了一种对文本内容进行数字水印加密保护的装置,包括:

字符转换单元,用来将字符转换为原始字符编码。

水印字符嵌入单元,用于将水印信息植入文本数据库内。

加密单元,用于获取密钥并用密钥和水印信息对所述原始字符编码进行加密,生成加密字符信息。

服务器单元,用来存储文本信息、字符编码信息、水印信息以及密钥信息等数据,所述服务器单元内还可以集成有判断模块或判断指令,对当前字符是否重复进行判断,如重复则忽略在后重复的字符。

服务器解密单元或解密模块,用来获取水印信息、密钥信息并使用水印信息、密钥信息对加密字符信息进行还原。

本发明加密后的文本内容可以在手机、平板、电子辞典的浏览器中或h5页面中正确显示,虽然显示的文本字符没有变化,但是每个字符的编码都根据数字水印的内容进行了加密变换,如果没有解密密钥secretkey,无法伪造水印,也无法还原显示字符。

附图说明

图1为本发明一实施例文本信息加密方法示意图;

图2为本发明一实施例文本信息解密方法示意图;

图3为本发明一实施例文本信息加密装置示意图;

图4为运用本发明进行文本加密解密的流程示意图;

图5为一实施例利用本发明方法加密后显示的一英文文本信息页。

具体实施方式

下面结合附图及实施例对本发明进行描述,本发明的示例性实施方式及其说明只用于解释本发明,并非作为对本发明的限定。

如图1所示实施例一:一种对文本内容进行数字水印加密保护的方法,其加密方法包括:

s1:将原始文本内的字符去除重复字符,生成一个由不重复的字符组成的数组a,数组a内每个字符的序号以首次在原文本内容中出现的顺序为序。

如某一文本信息为:诗经中的诗歌共分为风雅颂三部分,是依据音乐的不同而划分的,风包括15部分,大部分是黄河流域的民间乐歌,称作“十五国风”共160篇……。

首先按顺序进行字符的排列整理,剔除其中在后的重复字符,获得字符不重复的数组a,数组a中,“诗”对应的序号为1,“经”对应的序号为2,“中”对应的序号为3,“的”对应的序号为4,“歌”对应的序号为5,“共”对应的序号为6。

s2:将所述数组a中的字符逐一转换为字符编码,对所述字符编码进行逐一可逆加密,得到加密后的新字符编码b(n)。

所述字符编码的加密方法为:对数组a中的每个字符的字符编码a(n),逐一进行可逆变换,变为新字符编码b(n)=encrypt(a(n),copyright,secretkey,n),

其中,copyright为版权水印信息,secretkey为密钥,n为字符首次出现的序号。

所述加密为采用sha或md5等hash函数参与计算的可逆的加密方式,优选的,

b(n)=(a(n)&4294901760)⊕((a(n)⊕md5(copyright,n,secretkey))&65535)。

如:把字符“中”进行字符编码转换,按unicode编码则转换为00004e2d,按utf-8编码则转换为4e2d,按utf-16编码则转换为feff4e2d,按utf-32编码则转换为0000feff00004e2d。

再对“中”字符进行加密,以unicode编码为例,“00004e2d”加密转换得到加密后的字符编码b(3)为

“00001844”,携带的密钥为“abcde”,版权水印信息为“内容由海笛数字出版授权,授权号12345。”。

对“共”字符进行加密,以unicode编码为例,“00005171”加密转换得到加密后的字符编码b(6)为

“0000751e”,携带的密钥为“abcde”,版权水印信息为“内容由海笛数字出版授权,授权号12345。”。

s3:对新字符编码b(n)再转换得到字符编码c(n),用新的字符编码c(n)映射所述数组a中的字符。

所述字符编码c(n)的生成方法为:

设字符编码c(n)=b(n)+d(n),变码d(n)为二进制数值,d(n)默认为0,如果新字符编码c(n)与前面的某个字符编码c(1,2,3,…,n-1)重复,或者c(n)字符编码属于保留字符范围,如"<"、">"、"&"等字符,则不断尝试改变d(n)获得不重复且不属于保留字符的字符编码c(n)。

机器可识别的编码是二进制编码,d(n)改变原则为:在b(n)的二进制数值基础上,d(n)不断+1或者-1,使c(n)与在前的字符编码不同,优选的,如果字符编码b(n)&32768为0,则d(n)不断+1;如果字符编码b(n)&32768为1,则d(n)不断-1,使得c(n)成为一个与前面的任意一个字符编码不同且c(n)不属于保留字符编码范围。

将非零的d(n)值序列化为一个文本字符串后保存为corr值,作为附属内容与待显示的文本内容一起保存。

字符编码组c内的字符编码不重复,且所有字符不属于保留字符编码。

将s2中字符“中”的字符编码转换,将其加密后的编码“00001844”的二进制值加0得到c(3)=00001844,corr=“”。

下段为某一字符编码携带了版权信息、密钥以及corr值的语句存储于服务器内:

&lt;divid="copyrighted"copyright="内容由海笛数字出版授权,授权号12345。"corr=""style="font:tranfont">&#0x1844;

&lt;/div&gt;。

s4:循环转换完成文本信息数据的加密转换,生成一个新字体,使c(n)字符编码显示为a(n)的字形。

通过下面的程序语句实现新字体信息的显示:

@font-face{

font-family:'tranfont';

scr:url(data:application/x-font-ttf;/*mime*/

charset=utf-8;/*编码*/

base64,/*字体编码*/

aaeaaaalaiaa........................awawt1mvmg9uhaaa)rotmat(“woff”);

font-weight:normal

}。

本发明所述的字符编码可以采用unicode、utf-8、utf-16或utf-32等公知的字符编码方式编码。

本发明将文本信息中每个字符的编码都根据数字水印的内容进行加密变换,如果没有解密密钥secretkey,无法伪造水印,也无法窃取文本内容。

如图2所示实施例二:一种对所述文本加密内容进行解密的方法,所述解密方法是所述加密方法的逆过程,具体解密方法为:

通过服务器或解密模块获取并验证加密文本授权水印信息、加密字符编码c(n)、加密文字变码d(n)、加密字符首次出现的序号n;

如果授权水印信息正确,则还原字符编码c(n),返回字符a(n)=decrypt(c(n)-d(n),copyright,secretkey,n)。

优选的,

a(n)=((c(n)-d(n))&4294901760)⊕(((c(n)-d(n))⊕md5(copyright,n,secretkey))&65535)。

将字符编码a(n)逐一还原显示原字符。

如果无法验证获取密钥及水印信息,则无法获取字符编码c(n),也就无法获取到字符编码a(n),导致还原字符时显示乱码,保护了文本内容的版权。

本发明通过服务器或者解密模块对加密字符编码进行解密,解密过程中获取被授权方提供的授权水印信息、加密文字编码以及加密文字变码、加密文字首次出现的序号,即可获得字符编码a(n),还原字符,可以有效的避免密钥被攻破。

如图4所示实施例,本发明通过对原文本字符进行字符编码转换,再对转换后的字符编码进行加密,使加密后的字符编码携带有授权信息和密钥信息,再对加密后的字符编码变码转换成新的字体编码;文本信息读取时,服务器获取请求者的授权水印信息、密钥信息,再根据水印信息、密钥信息、加密文字变码及加密文字首次出现的序号获取字符编码a(n),利用字符转换单元将文本内容还原显示。

如图5所示英文文本的加密显示,词条“computer”的释义及例句,存储的英文文本信息是以二进制编码进行读取的,字母c对应的二进制值为67,二进制代码为“01000011”,将英文文本信息内的字符按统一编码方式进行编码,再按照s2中的方法进行加密转换为携带了水印密钥信息的字符编码b(n),接着按s3中的方法变码转换为字符编码c(n)并将此字符编码c(n)映射为图5所示的字符,读取时服务器获取到正确的密钥信息、授权水印信息后,得到字符编码c(n)及变码d(n)信息,基于此利用服务器或解密模块逐步进行解密获得原始字符信息并显示为图5中的字符。

如图3所示实施例三:一种对文本内容进行数字水印加密保护的装置,包括:

字符转换单元,用来将字符可逆转换为字符编码。

水印字符嵌入单元,用于将新的字符编码植入文本数据库内。

加密单元,用于获取密钥并用密钥和水印对所述字符编码进行加密。

服务器单元,用来存储文本信息、字符编码信息、水印信息以及密钥信息等数据,所述服务器单元内还可以集成有判断模块或判断指令,对当前字符是否重复进行判断,如重复则忽略在后重复的字符。

服务器解密单元或解密模块,用来获取水印信息、密钥信息并使用水印信息、密钥信息对加密字符信息进行还原,将加密的字符编码还原为原字符编码。

利用字符转换单元将字符统一转换为字符编码,如判断字符重复则忽略在后重复的字符,再利用加密单元对字符编码进行加密,利用水印字符嵌入单元将新的字符编码植入文本数据库内,利用服务器单元或解密模块对加密后的字符编码进行解密,逐一还原获得加密前的原字符并显示。

以上实施例对本发明的技术方案和有益效果进行了示例性说明,用于帮助理解本发明,并非用于限制本发明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的无任何创造性劳动的修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1