【问题标题】:Math Functions that cannot be reversed?不能反转的数学函数?
【发布时间】:2012-08-19 17:18:22
【问题描述】:

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

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

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

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

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

使用这个函数,我可以让我的哈希更安全。

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

【问题讨论】:

  • 你说的不是加盐——它是哈希部分。加盐只是添加一些额外的信息 - 通常与散列一起存储 - 以避免相同的纯文本散列到相同的值。
  • 您的术语让您感到困惑。 Salt 是为提高安全性而添加到 Hash 的任意(通常是随机)字节数。散列是一种单向数学函数。对哈希进行加盐只会增加额外的保护,并避免使用可能产生相同哈希的暴力破解、彩虹表和collisions
  • 对不起,先生,我需要一些不可逆的数学函数,比如平方根和模数! !我有兴趣开发一种单向哈希机制!
  • 我相信 windows 使用这种单向哈希来存储管理员密码。如果不是,请纠正我!

标签: math encryption operators hash


【解决方案1】:

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

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

  1. 很难找到具有相同输出的两个输入,称为 冲突
  2. 很难找到与给定输出匹配的输入,称为 前映像

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

  1. 发现一个冲突是微不足道的。给定x 只需计算-x,两者都与x*x 平方。
  2. 原图很容易找到。计算平方根。对此有有效的算法。 (忽略如果结果是非理性的,你不能输出无限的数字序列的问题)

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

相关问题:

【讨论】:

  • 感谢您的回答,但我只是不需要普通的哈希方法!我正在为每个字符开发一个密码,并希望将它们加密为单向哈希..
  • 然后描述你想要做什么。据我们所知,您需要常量函数。 (x) => c
  • 例如:-假设 A = -12 的密码,如果我的函数对该函数求平方,则结果为 144。如果有人想将 144 解码为正常值,即 -12 那么这对他们来说很困难..
【解决方案2】:
  1. 0 的幂。
  2. 虚数很好,因为计算机只有在知道如何处理它的情况下才能通过方程。
  3. 四舍五入。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-07
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-12
        • 2013-12-23
        相关资源
        最近更新 更多