Hash,一般译作“散列”,就是把任意长度的输入,通过散列算法,变换成固定长度输出,该输出就是散列值。
这种转换是一种压缩映射,也就是散列值远小于输入的空间。
用途: 主要用于安全领域中加密算法,把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。也可以说,hash就是找到一种数据内容与数据存放地址之间的映射关系。
散列一个典型的应用是 : 确保传递真是的信息
消息或数据的接收者确认消息是否被篡改的性质叫做数据的真实性,也称完整性。发信人通过将元消息和散列值一起发送,可以保证真实性。
MD5(Message-Digest Algorithm 5,信息-摘要算法),在90年代由MIT Laboratory for Computer Science 和RSA Data security Inc 的Ronald L. Rivest 开发出来的。是一种不可逆的加密算法,目前也是最牢靠的加密算法之一,它对应任何字符串都可以加密成一段唯一的固定长度的代码。
特性: 1.不可逆,没有系统的方法可以知道MD5原来的文字是什么
2.有高度的离散型,没有规律可循。产生的MD5码不可预测。
3.128位,任意信息之间具有相同MD5的可能性很低,通常认为不可能。
SHA1(Secure Hash Algorithm ,安全哈希算法),由NIST NSA设计为同DSA一起使用,它对于长度小于264的输入,产生长度为160bit的散列值,抗穷举性更好。 比MD5多了32位密文,更安全。但是MD5比SHA1运算速度快。