1

我对开发自己的简单哈希机制感到好奇。

我想知道一些不可逆的数学函数。

我知道提升到函数和模数是一些不可逆的函数,因为反向过程给出了两个答案。

例如:- 平方根 (4) = 2 或 -2

我需要一个不可逆的函数,因为即使有人破解了我的密码,他们也不应该能够产生一个解密器,它可以轻松地解密我的散列中的密码。

使用这个函数,我可以使我的散列更加安全。

如果有人可以提供更多此类功能并进行解释,那将很有帮助。

4

4 回答 4

5

R 中的平方是不可逆的,因为它会丢失信息。但这根本不是散列函数的意义所在。

加密哈希函数有两个主要属性:

  1. 很难找到具有相同输出的两个输入,称为碰撞
  2. 很难找到与给定输出匹配的输入,称为原像

R 上的平方没有这些性质:

  1. 找到碰撞是微不足道的。给定x只是计算-x,两者都平方x*x
  2. 查找原像很容易。计算平方根。对此有有效的算法。(忽略如果结果不合理则无法输出无限数字序列的问题)

不幸的是,没有具有这些属性的“简单”功能。

相关问题:

于 2012-08-19T17:52:45.517 回答
1
  1. 0 的幂。
  2. 虚数很好,因为计算机只有在知道如何处理它的情况下才能通过方程。
  3. 四舍五入的数字。
于 2013-12-07T13:46:23.157 回答
1

模数是不可逆的。绝对价值是不可逆的。舍入是不可逆的。

于 2015-10-11T07:25:49.113 回答
0

盐渍“功能”应该是可逆的。加盐的目的只是将额外的(难以猜测的)数据添加到您要散列的值中。这样,攻击者就很难用自己的猜测对哈希进行逆向工程。

一种常见的解决方案是将盐添加/附加到您要散列的文本中。

例如,如果您的隐藏值是“密码”,而您的 salt 是 0 到 255 之间的随机数,那么实际存储在数据库中的内容可能是 md5(123password), 123。所以它对 salt 没有任何意义操作是不可逆的,因为它已经被散列了,这是一种不可逆的。

于 2012-08-19T17:25:11.463 回答