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