美文网首页
信息指纹

信息指纹

作者: packet | 来源:发表于2019-01-26 10:15 被阅读0次

怎样区分两个人?用服装、相貌、身材、声音,还是DNA?
没那么复杂,只需要用指纹就可以了。
宇宙万物都有一个唯一标识的特征,比如人类的指纹,老虎和斑马的条纹,豹子的斑点。
信息也是如此,任何一段信息(文本、语音,图片、视频),都能对应一个不长的随机数,用来区分其他信息。这个随机数就叫这段信息的指纹。只要算法设计的好,不同的指纹就很难重复。
信息指纹的关键就是伪随机数生成器算法,将任何一段信息生成等长的伪随机数。常见的算法有MD5,SHA-1,但它们都是有漏洞的。
信息指纹在字节的江湖可以举重若轻地解决问题。

一 查重

在爬虫系统中,要防止重复下载同一个网页。可以把下载过的网页的URL存储在哈希表中。但是现在的URL会很长,而哈希表的存储效率只有50%,导致空间复杂度会很高。怎样能减少存储成本呢?可以使用信息指纹,把URL映射成一个128位的字符串(数字)。

二 加密

生成伪随机数的过程是不可逆的,这对保密很有用途,比如cookie就是用户信息的指纹。

三 权鉴

一些重要的接口,比如支付系统的接口,是需要对请求进行权鉴的。



这样在请求参数里,加一个sign=md5,接收方就不怕收到被篡改的请求了。
不过MD5并不是安全的算法,可以被破解。
破解的方法有:暴力穷举,查字典,彩虹桥法。

四 判断两个集合是否相等

  1. 暴力穷举法,O(N^2)
  2. 排序法 ,O(NlgN)
  3. 哈希,时间和空间复杂度都是O(N)
  4. 指纹求和。定义一个集合的指纹是每个元素的指纹之和,如果两个集合相等,那么集合的指纹必定相等。当然会有一个绩效绩效的误差,在工程中可以忽略。

五 判断集合是否基本相同

判断两个邮件地址清单,是否基本相同。按照相同的规则(比如尾号相同),随机抽取几个邮件地址,如果其指纹相同,可判断两个清单基本相同。

指纹也可以判断网页是否相同。从网页中找出一组特征词(可以用IDF最大的几个词),这样可以组成一个特征集合。这样只需要判断两个集合是否相等就可以。
Google发明了一种特定的信息指纹——相似哈希(Simhash),如果两个网页的相似哈希的差别越小,那么其相似度越高。比如指纹有64位,如果有一两位不同,那么网页内容重复的可能性可能大于80%。
判断两个网页是否相似,对搜索引擎非常重要,可以避免建立多余的索引。

Youtube怎样判断视频的原版和盗版?
视频的是由一个一个的帧组成的,一秒钟有几十个帧,但是这些帧的相似度很高。所以只需要抽取关键帧即可,非关键帧只需要存储和关键帧的差异值即可。找到关键帧,就可以组成一个关键帧集合,只需要比较这两个集合是否相等即可。

常见的生成信息指纹算法有MD5和SHA1,确保信息传输的完成性,比如下载,文件传输,IO等
MD5 :Message-Digest Algorithm 5(信息-摘要算法 5)
命令:md5sum file 生成32位16进制数

SHA1:Secure Hash Algorithm 安全散列算法
命令:sha1sum file 生成40位16进制数

参考:《数学之美》, MD5算法

相关文章

  • 密码学

    第 16 章:信息指纹及其应用 信息指纹的用途远不止网址的消重,信息指纹的一个特征是其不可逆性,无法根据信息指纹推...

  • 信息指纹

    怎样区分两个人?用服装、相貌、身材、声音,还是DNA?没那么复杂,只需要用指纹就可以了。宇宙万物都有一个唯一标识的...

  • 指纹解锁的原理

    指纹/人脸解锁的原理是,采集指纹自然信息,转换成数字信息,储存成密码;解锁,读取指纹信息,转换成数字信息,与密码比...

  • Android获取签名证书的指纹信息SHA1

    需求: 在做Google登录的时候,需要获取应用的签名指纹信息,指纹信息基本的获取命令如下: keytool -e...

  • Linux云计算学习笔记day21

    cat oldboy.txt inode和block ? 记录指纹信息 与公安局的指纹信息进行对比 1.找出/o...

  • 获取 Android 证书指纹

    注册各个平台 SDK 时经常碰到需要填写证书指纹,通过下面命令获取相关信息。 可以看到输出信息包含:证书指纹项,包...

  • iOS 指纹解锁 检测指纹信息变更

    通过LAContext evaluatedPolicyDomainState属性可以获取到当前data类型的指纹信...

  • Windows系统查询电脑生产日期命令:

    获取本机系统信息: C:\Users\Administrator > systeminfo 获取主机指纹信息: C...

  • 新指纹技术可以区分男女

    指纹可以透露你的许多信息,但最新的技术进展与指纹本身无关,而是你在留下指纹的同时掉下的其它东西:氨基酸。研究报告发...

  • rbd image找到对应osd位置

    1. 查找image指纹信息 2. 根据指纹找到这个image的object 3. 根据object 查找对应的o...

网友评论

      本文标题:信息指纹

      本文链接:https://www.haomeiwen.com/subject/gctbjqtx.html