-1

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

a - ìbnÿ&%A'T«•t‰ãšÀ

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

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

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

stackoverflow - ‹°>¨0µ±Ò¡^Ö—–”</p>

hased 值始终为 16 个字符。据我说,它最多可以散列 10^96 个不同的散列值,并且需要很长时间才能破解。我可以将它用于我的网站吗?

4

1 回答 1

1

总结一下评论中普遍提到的内容:

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

话虽如此,如果您的网站非常低调,那么仅仅因为它晦涩难懂(哎呀,默默无闻的安全性)并且没人关心就足够了。如果有一天一个足够熟练的攻击者对您的特定站点和散列算法感兴趣,那么您可能会被搞砸。

于 2013-07-04T17:29:28.263 回答