【他山之石】大话密码学·哈希算法·章二 扬帆

2019-12-03  本文已影响0人  星际大镖客

扬帆向何处,插羽逐征东。夷落人烟迥,王程鸟路通。
江流回涧底,山色聚闽中。君去凋残后,应怜百越空。
-- 唐 · 刘长卿《送乔判官赴福州》

基本含义

哈希函数(或散列算法,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。
该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。 -- 维基百科

常见的哈希算法有:MD4 、MD5 、 SHA1、SHA2(SHA224 、 SHA256 、 SHA384 、SHA 512)

哈希算法 翻译 翻译 什么TM的叫hash
哈希函数要做的事情是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射(一一对应关系)。

一个可靠的哈希算法要满足三点。

但是仔细想一下,如果哈希的长度是固定的,也就是取值范围是有限的,而输入数据的取值范围是无限的,所以总会找到两个不同的输入拥有相同的哈希。所以,哈希函数的安全性肯定是个相对概念。
如果出现了两个不同输入有相同输出的情况,就叫碰撞。不同的哈希算法,哈希位数越多,也就基本意味着安全级别越高,或者说它的”抗碰撞性“就越好。

再来说说哈希函数的主要作用。

哈希算法的分类

哈希算法有很多种,长度越长的算法基本认为越安全。安全度低的哈希算法被认为是普通哈希算法,主要用来做完整性校验。安全度高的被称为加密哈希算法,会被用在加密算法中。
所谓的高低都是相对概念,例如 MD5 曾经属于加密哈希,但是目前只能用来做安全校验了。而从2017年开始,SHA-1 算法生成的加密证书也会被各大浏览器拒绝了。目前最流行的加密算法是 SHA-2 ,但是跟 SHA-1 不同,SHA-2 不是一种算法,而是一系列算法的统称 。

总结

参考:

在线加密解密演示 :
https://tool.oschina.net/encrypt?type=2

上一篇下一篇

猜你喜欢

热点阅读