什么是密码哈希?
什么是密码哈希?
定义:
哈希 是将函数 f()
应用于可变大小的输入以产生恒定大小的输出。
A => f() => X
B => f() => Y
C => f() => Z
哈希函数是一种单向函数,这意味着没有反转或撤销哈希的函数。同时重复应用哈希 f(f(x))
不会再次产生 x
。
详细信息:
哈希函数可以简单到“将输入加上13”,也可以复杂到像密码哈希(如MD5或SHA1)这样的加密哈希。有许多东西构成了一个好的哈希函数,例如:
a
进行哈希处理多次,每次都会得到相同的输出f()
将这些输出平均放置而不是放在同一个桶中。当两个输入计算出相同的输出时,这称为碰撞。对于哈希函数来说,产生更少的碰撞是件好事。哈希应用于密码:
密码哈希的过程与上述描述的过程相同,但需要考虑一些特殊情况。许多构成良好哈希函数的属性在密码方面并不有益。
例如,确定性,因为哈希产生确定性结果,当两个人使用相同的密码时,哈希在密码存储中看起来是相同的。这是不好的!但是,这可以通过一种称为盐的东西来缓解。
另一方面,均匀性是有益的,因为期望算法限制碰撞。
由于哈希是单向的,意味着无法从输出推断出输入,这就是为什么哈希很适合密码的原因!
哈希是一种单向函数,它将字符串或数据源转换为一个看起来像加密的字符串。
有各种哈希算法,最流行的是MD5,但还有许多其他算法。业内许多专家都使用SHA256算法以获得更好的安全性。
单词的MD5哈希值:
password是22e5ab5743ea52caf34abcc02c0f161d
PASSWORD是319f4d26e3c536b5dd871bb2c52e3178
无论您试图哈希多少个字符,结果的字符长度都将相同。哈希通常用于存储密码以防止其被查看。