什么是密码哈希? [关闭](What is password hashing? [closed]

2019-08-31 07:27发布

是什么意思哈希密码吗?

Answer 1:

定义:
散列是一种功能的应用f()一个可变大小的输入,以产生恒定的大小输出。

A => f() => X
B => f() => Y
C => f() => Z

哈希也是一个单向函数,这意味着没有扭转或撤消一个散列函数。 除了重新将散列f(f(x))不会对产品x一次。

细节:

散列函数可以是简单的“添加13到输入”或复杂的如加密散列作为这样MD5或SHA1 。 有迹象表明,构成一个良好的散列函数的许多事物一样:

  • 低成本 :容易计算
  • 确定性 :如果我散列输入a多次,我会每次都得到相同的输出
  • 均匀性 :输入将被均匀地分布在可能输出之间分发。 这属于同一种叫做行鸽巢原理 。 由于是产出数量有限,我们希望f()来放置这些输出均匀,而不是在同一个桶。 当两个输入计算到相同的输出这被称为冲突。 这是一个散列函数来产生较少的冲突是一件好事。

哈希应用到密码:

密码的哈希是相同的处理,如上所述,然而,它带有一些特殊的考虑。 许多组成一个好的哈希函数的性质并无益处,当涉及到的密码。

举个例子决定 ,因为散列产生确定性的结果,当两个人使用相同的密码哈希会看起来相同的密码存储。 这是一件坏事! 然而,这是由一种叫做减轻盐 。

在另一方面一致性是有益的,因为欲望是算法来限制冲突。

由于哈希是单向意味着输入不能从输出,这是确定的,为什么散列是伟大的密码!



Answer 2:

采用数据块,并返回一个字符串,你不能让你的原始数据块回来。

维基百科文章

哈希密码会拍摄出清晰的文本字符串,并在其上(取决于哈希类型)执行算法得到一个完全不同的价值。 该值将是相同的每一次,所以你可以存储在数据库中的哈希密码和对哈希检查用户输入的密码。

这可以防止在数据库中存储(坏主意)的明文密码。

这里是一个哈希函数列表 。



Answer 3:

散列是一个简单的单向函数,这将需要一个字符串或数据源和创建加密寻找字符串。

有各种散列算法最流行的是MD5,但也有许多人。 在业内许多专家正在使用SHA256算法更好的安全性。

MD5哈希的话:

密码是22e5ab5743ea52caf34abcc02c0f161d

密码是319f4d26e3c536b5dd871bb2c52e3178

结果的字符长度将是一样的,不管你有多少个字符尝试哈希值。 散列通常用于存储密码,以防止它们被查看。



文章来源: What is password hashing? [closed]