16 信息指纹及其应用
网络爬虫在下载网页时,会将访问过的网址变成一个个信息指纹(固定的128位或64位二进制整数),存到散列表中,每当遇到一个新网址,计算机就计算其指纹,然后查找该指纹是否已在散列表中,来决定是否下载这个网页。这种整数的查找比原来的字符串(网址)查找快几十倍。这样就可以进一步节省存储空间和运算时间。
某个网址的信息指纹的计算方法:首先将这个字符串看成一个整数,然后用到一个产生信息指纹的关键算法:伪随机数产生器算法(PRNG),通过它将任意很长的整数转换成特定长度的伪随机数。
信息指纹的一个特征是其不可逆性,也就是说,无法根据信息指纹推出原有信息。比如说,一个网站可以根据用户本地客户端的cookie识别不同的用户,这个cookie就是一种信息指纹,但是网站无法根据信息指纹了解用户的身份,这样就可以保护用户的隐私。但是cookie本身并没有加密,因此通过分析cookie还是能指定某台计算机访问了哪些网站。为了保障信息安全,一些网站采用加密的HTTPS,用户访问这些网站留下的cookie本身也需要加密。
在互联网上加密使用基于加密的伪随机数产生器(CSPRNG),常用的算法有MD5和SHA-1(已被证明存在漏洞)等,它们可以将不定长的信息变成定长的128位或者160位二级制随机数。
信息指纹的用途
1.在网络爬虫中利用信息指纹可以快速而经济(节省服务器)地判断一个网页是否已下载过。
2.集合相同的判定:计算两个集合的指纹,然后直接进行比较,如果两个集合的元素相同,那么他们的指纹一定相同。比如判断两个查询用词是否完全相同,比如检测网络上的某首歌是否是盗版别人的。
3.判定集合基本相同:比如在网页搜索中判断两个网页是否是重复的,只需对每个网页挑选出几个词,这几个词构成网页的特征词集合,然后计算和比较这些特征集合的信息指纹即可。
4.YouToBe的反盗版:视频的匹配有2个核心技术,关键帧的提取和特征的提取。首先找到关键帧,然后用一组信息指纹来表示这些关键帧,有了这些信息指纹后,检测盗版就类似于笔记哦啊两个集合元素是否相同了。