哈希密码是什么意思?
答案 0 :(得分:16)
<强>定义:强>
Hashing是将函数f()
应用于可变大小的输入以生成常量大小的输出。
A => f() => X
B => f() => Y
C => f() => Z
散列也是单向函数,这意味着没有反转或撤消散列的函数。同样重新应用哈希f(f(x))
也不会再次产生x
。
详细信息:
哈希函数可以像“添加13到输入”一样简单,也可以像Cryptographic Hash那样复杂,例如MD5或SHA1。有许多东西构成了一个好的哈希函数,如:
a
,我每次都会获得相同的输出f()
均匀地放置这些输出,而不是放在同一个存储桶中。当两个输入计算到相同的输出时,这称为碰撞。哈希函数产生较少的冲突是一件好事。哈希应用于密码:
密码散列与上述过程相同,但它有一些特殊注意事项。构成良好哈希函数的许多属性在密码方面都没有用处。
以 determinism 为例,因为当两个人使用相同的密码时哈希会产生确定性结果,哈希在密码存储中看起来会相同。这是件坏事!然而,这被称为salt。
的东西减轻了 另一方面,Uniformity 是有益的,因为期望算法限制冲突。
因为散列是 One-Way 意味着无法从输出中确定输入,这就是为什么散列对密码很有用!
答案 1 :(得分:13)
获取一个数据块并返回一个字符串,以便您无法恢复原始数据块。
散列密码将采用明文字符串并对其执行算法(取决于散列类型)以获得完全不同的值。此值每次都相同,因此您可以将散列密码存储在数据库中,并根据哈希检查用户输入的密码。
这阻止您将明文密码存储在数据库中(不好主意)。
答案 2 :(得分:6)
哈希只是一个单向函数,它将采用字符串或数据源并创建加密的字符串。
最流行的有各种哈希算法是MD5,但还有很多其他算法。业内许多专家都在使用SHA256算法来提高安全性。
MD5哈希的话:
密码是22e5ab5743ea52caf34abcc02c0f161d
PASSWORD是319f4d26e3c536b5dd871bb2c52e3178
无论您尝试散列多少个字符,结果的字符长度都是相同的。哈希通常用于存储密码以防止被查看。