基于随机字体的网页文本加密与解密方法与流程

文档序号:22737382发布日期:2020-10-31 09:17阅读:572来源:国知局
基于随机字体的网页文本加密与解密方法与流程

本发明涉及互联网技术领域,特别涉及网页字体显示信息的加密和解密过程。



背景技术:

随着互联网技术的快速发展,网络成为大量信息的载体,各类终端可以从网络上获取用户所需的信息,并通过网页的形式进行显示。互联网时代,每天都在产生海量的公开数据,网页中存在许多有价值的关键数据(如电商网站中的商品销量、价格信息),在这些数据中蕴含着难以估量的巨大价值,因此以获取互联网公开数据信息的爬虫技术应运而生。

但是对于网站的运营者来说,部分恶意爬虫的运行造成了大量的网络访问流量,给运行网站的服务器增大了并发与网络带宽压力,极大地增加了网站运行的成本。对于互联网公司来说,数据是公司的重要资源。哪怕是面向用户公开的数据信息,在收集到一定数量的时候也能获取到许多有价值的信息。而这些信息往往并不想被竞争对手或灰色产业获取并利用。

在对抗爬虫的过程中,既要不让爬虫程序获取到真实信息,又要确保真实用户能够获取到真实信息,这往往是一种矛盾。如将网页中的部分文字替换成图片,虽有效地加大了爬虫获取正确信息的难度,却也因为大量图片的使用造成网页获取与渲染的时间增加,因为图片本身的不可编辑性造成样式排版的偏差,从而影响了用户的使用体验。

而随着前端技术的发展,这一目标变为可能。在爬虫访问的数据(往往是网页源码信息)与用户可以看到的信息(往往是页面渲染后的信息)之间,css、js等前端技术发挥了巨大作用。而网页字体渲染,则在网页中最关键的信息源——文字的显示上起到了关键作用。



技术实现要素:

本发明的技术任务是解决现有技术的不足,从字体渲染的角度尝试对信息数据进行加密,提供一种基于随机字体的网页文本加密与解密方法。

本发明解决其技术问题所采用的技术方案是:

一种基于随机字体的网页文本加密与解密方法,包括步骤如下:

步骤s1.提取网页中需要加密的字符集;

步骤s2.建立加密字符的映射关系,生成加密映射表cipherbook;

步骤s3.创建字体文件;

步骤s4.修改字体cmap表:

步骤s5.编辑字形索引glyph_index;

步骤s6.将编辑后的字体文件在页面css中引用;

步骤s7.使用步骤s2定义的加密映射表对网页正文中的内容进行替换;

步骤s8.将网页内容及字体返回浏览器即可查看渲染后的页面,此时页面显示字符正常,但复制出来的文本字符是经过加密的文本;

步骤s9.在拥有字符映射的情况下,后台可直接使用映射表进行解密。

方案优选地,执行步骤s1时,随机在网页文本中选择部分文本字符作为加密字符集,不进行全文加密。

方案优选地,执行步骤s2时,将需要加密字符的unicode编码映射到其他字符,其他字符为字体库中不太常用的高位字符,或是毫不相关的字符。

方案优选地,步骤2生成的加密映射表cipherbook在后端保存,形式如下:

cipher_book={

'0':'\ue910',

'1':'\ue911',

'2':'\ue912',

'3':'\ue913',

'4':'\ue914',

'5':'\ue915',

'6':'\ue916',

'7':'\ue917',

'8':'\ue918',

'9':'\ue919',

}

方案优选地,执行步骤s3时,使用已有的字体文件,提取出加密字符集;或者完全自定义包含加密字符集字形的全新字体。

方案优选地,执行步骤s4时,按照s2中定义的加密映射关系将cmap映射中的原始字符code替换为加密字符。

方案优选地,执行步骤s5时,将字形索引glyph_index进行调整,改成没有明显可读意义的索引名称,字形索引glyph_index对应具体的字形矢量,浏览器解析字形矢量描述绘制在页面渲染绘制文字。

方案优选地,步骤s6包括如下步骤:

1)首先定义字体:

2)然后定义使用该字体的class:

.demo-icon{

font-family:"fontencode";

}

3)然后在显示字符的标签中使用该class即可:

<h1><smallclass="demo-icon">这是测试文本</small></h1>。

本发明的一种基于随机字体的网页文本加密与解密方法与现有技术相比所产生的有益效果是:

1、本发明便从字体渲染的角度尝试对信息数据进行加密,

1)字体渲染本身是网页渲染的重要过程,不会对整体样式产生任何影响,保持了样式的统一;

2)字体文件仅仅描述了字形的矢量信息,相较图片占用空间很小,字体绘制则完全由浏览器完成,几乎不会对用户体验产生影响;

3)经字体加密过后的网页信息,用户可以看到正确信息,而网页源码中的信息则是加密过后的。

2、该方法虽无法完全避免爬虫自动化获取信息(如将字体渲染后进行图像识别),但可以极大增加爬虫获取正确信息的成本及数据量,进一步降低了从大量数据中提取关键信息的有效性。

综上,本专利可以有效减少网站遭受恶意攻击的风险,同时节省企业在许多无效访问中消耗的大量人力、物力和金钱成本,对于提高产品的用户体验度和满意度具有重要意义。

附图说明

为了更清楚地描述本发明一种基于随机字体的网页文本加密与解密方法的工作原理,下面将附上简图作进一步说明。

附图1是本发明一种基于随机字体的网页文本加密与解密过程示意图;

附图2是本发明修改字体cmap表的示意图;

附图3是本发明网页字体渲染的示意图。

具体实施方式

下面将结合本发明实施例中的附图1-3,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前网络上使用的字体容器格式有四种:eot、ttf、woff等,其中woff获得了最广泛的支持。web开放字体格式(webopenfontformat,简称woff)是一种网页所采用的字体格式标准。此字体格式发展于2009年,由万维网联盟的web字体工作小组标准化,现在已经是推荐标准。此字体格式不但能够有效利用压缩来减少文件大小,并且不包含加密也不受drm(数字著作权管理)限制。

woff本质上是包含了基于sfnt的字体(如truetype、opentype或其他开放字体格式),且这些字体均经过woff的编码工具压缩,以便嵌入网页中。sfnt是一套标准化的字体数据结构格式。许多常见的字体格式都使用其作为容器,提供各个字元标准化的定址表、数据结构等。

网页字体是一个字形集合,而每个字形是描述字母或符号的矢量形状。字体渲染过程本质上就是浏览器根据字体文件,为每个文本字符找到对应的矢量形状,然后在页面上将字形绘制出来。在woff等基于sfnt格式的字体中,glyph代表字形,描述了字体的绘制信息;glyph_index代表字形索引,每个字形都有一个独一无二的索引值;cmap则是每个字符(unicode编码)到glyph_index的映射关系,是浏览器由字符绘制字形过程中最关键的桥梁。本发明正是利用对cmap的修改实现对字体渲染的加密与解密。

如附图1所示,本发明的一种基于随机字体的网页文本加密与解密方法,包括步骤如下:

步骤s1.提取网页中需要加密的字符集

随机在网页文本中选择部分文本字符作为加密字符集,不建议进行全文加密,一是会增加字体文件的大小,二是防止爬虫可根据字符频率进行破解;

步骤s2.建立加密字符的映射关系,生成加密映射表cipherbook

将随机选中需要加密的字符(其unicode编码)映射到其他字符,可以是字体库中不太常用的高位字符(如0xefff),或映射到毫不相关的其他字符(如“和”映射到“加”),注意映射表应当在后端保存,形式如下:

cipher_book={

'0':'\ue910',

'1':'\ue911',

'2':'\ue912',

'3':'\ue913',

'4':'\ue914',

'5':'\ue915',

'6':'\ue916',

'7':'\ue917',

'8':'\ue918',

'9':'\ue919',

}

步骤s3.创建字体文件

可以使用已有的字体文件,提取出加密字符集;也可以完全自定义包含加密字符集字形的全新字体;

步骤s4.修改字体cmap表

结合附图2,按照步骤s2中定义的加密映射关系将cmap映射中的code(即原始字符)替换为加密字符;

步骤s5.编辑字形索引glyph_index

结合附图3,将字形索引glyph_index进行调整,改成没有明显可读意义的索引名称,字形索引glyph_index对应具体的字形矢量,浏览器解析字形矢量描述绘制在页面渲染绘制文字;

步骤s6.将编辑后的字体文件在页面css中引用,包括如下步骤:

1)首先定义字体:

2)然后定义使用该字体的class:

.demo-icon{

font-family:"fontencode";

}

3)然后在显示字符的标签中使用该class即可:

<h1><smallclass="demo-icon">这是测试文本</small></h1>。

步骤s7.使用步骤s2定义的加密映射表对网页正文中的内容进行替换;

步骤s8.将网页内容及字体返回浏览器即可查看渲染后的页面,此时页面显示字符正常,但复制出来的文本字符是经过加密的文本;

步骤s9.在拥有字符映射的情况下,后台可直接使用映射表进行解密;而由于映射表不公开,爬虫无法获取,则爬虫无法通过直接解析网页文本的方式获取正确信息,加密、解密过程完成。

本发明利用了浏览器自身的字体渲染过程完成加密,极大提高加密效率的同时确保了用户可以看到正常文本,而却无法直接获取原始文本;加密过程简单易行,加密方仅需维护一个字符映射表;拥有字符映射表的加密方可以迅速对文本进行解密,而没有映射表的一方无法通过存粹通过解析文本的方式解密文本,在不影响用户体验的情况下,极大曾加了爬虫爬取数据的难度,有效保护了数据信息价值,节省网站维护的成本。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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