【发布时间】:2013-07-02 13:52:08
【问题描述】:
将我的网站密码存储在我的数据库中并使用我自己的代码进行哈希处理是否安全?哈希码是用 php 编写的,这里有一些例子:
a - ìbnÿ&%A'T«•t‰ãšÀ
一个。 - mf‡=ä^ö™b±kª©
啊! - ž'6èŤ7μp¼Y +
123456 - Š-ËzUo‚ñQÈÇûÌ8
stackoverflow - ‹°>¨0µ±Ò¡^Ö—–”
hased 值始终为 16 个字符。据我说,它可以散列多达 10^96 个不同的散列值,并且需要很长时间才能破解。我可以将它用于我的网站吗?
【问题讨论】:
-
“用我自己的代码散列”是什么意思?如果您的意思是您已经编写了自己的散列算法:不要这样做。使用其中一种标准。除非您是这方面的数学专家,否则它可能没有您想象的那么安全。
-
这个问题似乎离题了,因为不可能通过查看几个样本值的输出来评估哈希的安全性。
-
我引用 Bruce Schneier 的话:“任何人,从初学者到专家,都可以发明一种他们自己无法破解的加密系统。”...Schneier's Law
-
所以你依靠默默无闻的安全性——相信没有人能够破坏你的算法,因为他们看不到它:但如果我们看不到你的算法,我们就不能评估您是否应该将它用于您的网站,仅建议不要基于自制加密很少安全(您可能是例外,但我们不知道)并且您不愿意分享您的算法是可疑的不安全
-
您可以生成多少个可能的哈希值并不重要,重要的是您每秒可以哈希多少个密码。使用像 MD5 这样的算法,您可以使用普通 GPU 每秒计算大约 8 Giga 哈希,因此要暴力破解整个英语词典,您只需要几分之一毫秒。
标签: php database hash passwords