【发布时间】:2011-07-15 21:48:38
【问题描述】:
我正在开发web administration module for mailservers(如果你想看看它是开源的)。
为此,我需要能够生成Dovecot 可读的散列密码。作为described on their wiki,他们推荐的密码散列方案是SSHA256(额外的S代表加盐)。
还解释说,使用以下 PHP 代码实现这可能相当简单:
$salt = 'generate_a_salt_somehow';
$hash = hash('sha256', $password . $salt);
然而,从我读过的关于密码学的内容来看,这是一种相当幼稚的生成加盐哈希的方法,但如果你在 typing A-E-S in your source code 时做错了,我认为在这种情况下也是如此。
因此,如果您对密码学有深入了解,我很想听听最安全的方法,无论是 mcrypt、mhash 还是其他方法。
【问题讨论】:
-
哦,是的,首先准备哈希的安全方法也很好:)
-
哈希是否必须匹配其他实现?或者每个站点的唯一性是否可以接受?
-
它必须与 Dovecot 的实现相匹配才能有用,否则用户将无法登录:)
-
1) 如果可用,我会使用 bcrypt。 2)接受的答案中显示的算法显然很糟糕(太快),所以你不应该使用 SSHA。
标签: php hash cryptography ssha