2013-10-14 54 views
3

我正在检查PHPass库,它已经在SO上的很多答案中被推荐。但是,当我查看生成的密码,我看到这样的事情:PHP密码散列 - PHPass

enter image description here

现在一些这些都只是1234的,有些是更复杂一点。有些非常复杂(大写,小写,字符)等等。但是,我仍然看到前7个字符总是相同的,不管密码是什么。这难道不容易猜到吗?我不太了解彩虹或字典的攻击,但这看起来很奇怪。这是通常的吗?这是一个错误?该框架是否足以在生产环境中使用?

回答

2

这个第一个字符只是哈希方法的“描述”。由于这一点,您将能够识别并重新使用该方法来检查密码。即使在不同的服务器上或者在改变散列新密码的方法之后(旧的仍会被识别)。

你可以阅读关于这个前缀,这里http://www.php.net/security/crypt_blowfish.php

+0

新的你的意思是使用的算法?如果是这样的话,为什么需要7个字符来表示这个呢?不会有单个字符或类似$ b $的东西能够实现吗? –

+0

@ DS。也许它会是足够的,但不是因为河豚的情况,因为它还需要'成本'参数,它介于第二和第三'$'之间。 –

+0

感谢您的链接。我在Google上搜索不相关的东西。任何对这种“成本”提及感到好奇的人,我也会留下这个链接。 http://php.net/manual/en/function.crypt.php –