zoukankan      html  css  js  c++  java
  • 读书笔记——吴军《数学之美》之信息指纹及其应用

    16 信息指纹及其应用

    网络爬虫在下载网页时,会将访问过的网址变成一个个信息指纹(固定的128位或64位二进制整数),存到散列表中,每当遇到一个新网址,计算机就计算其指纹,然后查找该指纹是否已在散列表中,来决定是否下载这个网页。这种整数的查找比原来的字符串(网址)查找快几十倍。这样就可以进一步节省存储空间和运算时间。

    某个网址的信息指纹的计算方法:首先将这个字符串看成一个整数,然后用到一个产生信息指纹的关键算法:伪随机数产生器算法(PRNG),通过它将任意很长的整数转换成特定长度的伪随机数。

    信息指纹的一个特征是其不可逆性,也就是说,无法根据信息指纹推出原有信息。比如说,一个网站可以根据用户本地客户端的cookie识别不同的用户,这个cookie就是一种信息指纹,但是网站无法根据信息指纹了解用户的身份,这样就可以保护用户的隐私。但是cookie本身并没有加密,因此通过分析cookie还是能指定某台计算机访问了哪些网站。为了保障信息安全,一些网站采用加密的HTTPS,用户访问这些网站留下的cookie本身也需要加密。

    在互联网上加密使用基于加密的伪随机数产生器(CSPRNG),常用的算法有MD5和SHA-1(已被证明存在漏洞)等,它们可以将不定长的信息变成定长的128位或者160位二级制随机数。

    信息指纹的用途

    1.在网络爬虫中利用信息指纹可以快速而经济(节省服务器)地判断一个网页是否已下载过。
    2.集合相同的判定:计算两个集合的指纹,然后直接进行比较,如果两个集合的元素相同,那么他们的指纹一定相同。比如判断两个查询用词是否完全相同,比如检测网络上的某首歌是否是盗版别人的。
    3.判定集合基本相同:比如在网页搜索中判断两个网页是否是重复的,只需对每个网页挑选出几个词,这几个词构成网页的特征词集合,然后计算和比较这些特征集合的信息指纹即可。
    4.YouToBe的反盗版:视频的匹配有2个核心技术,关键帧的提取和特征的提取。首先找到关键帧,然后用一组信息指纹来表示这些关键帧,有了这些信息指纹后,检测盗版就类似于笔记哦啊两个集合元素是否相同了。

  • 相关阅读:
    c++多继承布局
    copy constructor
    default construction
    对象模型如何影响程序
    c++对象模型-对象模型
    在网站中引入特殊字体
    数组基础相关
    CSS3 transform3D
    即时效果--元素出现在页面特定区域时加载
    svg动态绘制饼状图
  • 原文地址:https://www.cnblogs.com/zhengna/p/12196639.html
Copyright © 2011-2022 走看看