使用我自己的哈希码安全吗?

时间:2013-07-04 14:01:46

标签: php database hash passwords

将我的网站存储在我的数据库中的密码用我自己的代码进行散列是否安全?哈希代码是用PHP编写的,这里有一些例子:

a - “fe”&%A'T«•t‰ãšÀ

一个。 - mf‡=ä^ö™b±kª©

一个! - ž'6èŤ7Ãμp¼Y+

123456 - Š-ÃËzUo,ñQÈÇûÌ8

stackoverflow - <°&gt;¨0μ±Ò¡^Ö-œ“

hased值总是16个字符。根据我的说法,它可以散列到10 ^ 96个不同的哈希值,并且需要一些永远的破解。我可以将它用于我的网站吗?

1 个答案:

答案 0 :(得分:1)

总结评论中通常提到的内容:

  • 通过默默无闻的安全不是保护。首先,如果您的哈希数据库泄漏,您的源代码也可能是可访问的。如果不是,人们可以尝试并且可以对算法进行逆向工程。如果可以想到它,那么其他任何人都可以。
  • 哈希必须具有足够大的密钥空间,以尽可能避免冲突。你已经 显然从字母表的大小来判断,但抗冲击你的算法是我们不知道的。
  • 哈希必须足够昂贵才能使快速散列大量值无法实现。我们在您的情况下不知道这一点,但由于您没有明确地强调这是一个功能,我希望它是快速。这意味着攻击者会尽可能快地散列所有可能的密码。请注意,这里哈希值的字母表有多大,这与此无关;只有要散列的值的数量与散列一个值所需的时间相关。
  • 哈希不得有漏洞,允许快捷方式进一步缩短哈希时间,甚至允许对值进行有针对性的逆向工程。我们从您提供的有关哈希的信息中不知道这一点。

话虽如此,如果你的网站非常低调,它可能足够只是因为它是模糊的(哎呀,默默无闻的安全)并且无人问津。如果有一天,一个足够熟练的攻击者对您的特定站点和散列算法感兴趣,那么您可能会被搞砸。