GUID、MD5和时间戳
今天看fis3的文件指纹中,fis3使用MD5戳为文件生成单独的识别码。在简书上看到一片文章介绍GUID、MD5和时间戳就粘贴过来了,方便以后查看。如有侵权请告知本人删除。
作者:海豚总动员
网址:https://www.jianshu.com/p/b4a48a3018e3
我们在设计程序或协议的时候常常涉及到这么几个单词:
-GUID(Globally Unique Identifier)
-MD5(Message Digest Algorithm)
-时间戳(TimeStamp)
三种都是对某一个事物的数字标识,都是用数学方式对一个事情的抽象。具体来说:
GUID
英文翻译过来叫全局唯一标识符,是一个128位的数字标识符,它能保证在一个计算机集群中,不会存在两个唯一的值,是不是特别适合做身份或帐号?毕竟不是每一个产品是像QQ这样的不登陆就不让用的产品,还是有很多产品要满足用户不登陆也要满足基本需求,比如一些新闻客户端,但是仍然需要对这一个用户服务好,建立这个用户的画像,数据模拟出这个用户的喜好与倾向,当然需要有这样一个用户身份和标识。
MD5
英文翻译过来为:信息摘要算法第五版的缩写,它主要解决的问题是,对一个文件或字符串生成一个唯一标识,比如对abcde生成MD5码:
那世界上就真的只有abcde能生成这个码,MD5算法保证了一个字符串生成的MD5码是唯一的,一旦唯一,就可以做很多事情了。
比如:云端下载了一个文件,如何保证这个文件是你自己下发的,没有被篡改过?哦,只要协议里面设计一个MD5字段表示这个原始文件的MD5,下载之后,再进行MD5计算,如果两个值相等,那么证明就是服务器给你的文件。
比如:一些云盘,为了响应国家号召,会对云盘中的「激情影片」进行定期处理和删除。但是大家命名的时候,有的叫「东京热-小泽玛莉亚&¥#@!」,有的叫「21天精通C++」,其实他们是同一个影片,你以为这样就能蒙混过关?其实计算机是看的这个影片的MD5值,如果是一样的,那没跑,删除了不会错。
总之,就是一个文件或字符串生成的一个数,这个数是唯一的。
时间戳
写信的时候,通畅会盖上邮戳,表示此封信邮寄出去的时间,时间戳的意义基本雷同,表示一个事件发生的时间。
几乎没有什么应用不需要时间戳,发微博的时间戳,公众账号推送的时间戳,资讯网站上每一条信息的时间戳,时间戳可能用于消息的排序,用于筛选,用于信息比较各个方面。
时间戳理解为:当某一事件发生时,立刻为它存储一个时间,当你的应用或程序是一个以timeline时间线为基础的应用,那应该果断的设计这个字段,如果是一个计算器应用,应该是没必要设计。