我是一个初学者,但我一直在努力学习如何使用Zend Framework2。我正在使用一个从公共存储库克隆的模块来验证用户。它使用MD5,如下所示:
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$dbAuthAdapter = new DbAuthAdapter($dbAdapter, 'user','username','password', 'MD5(?)');然而,首先我想使用MD5以外的东西(比如SHA-2?),因为我已经在很多场合读到过MD5不再安全,而且我还想使用Salt值。我希望为每个用户生成一个随机的Salt值,并将其存储在他们的表行中的一个单独的列中,并将他们的密码存储为散列的salt + password。这部分应该不是问题。
我遇到的问题是如何使用我在模块中设置的适配器对其进行验证。我想从数据库中获取Salt值,将其添加到用户通过登录表单提供的密码之前,对其进行加密,并将其与存储的密码进行比较。如何从数据库中获取用户的盐值?如何使用不同的加密而不是MD5?
发布于 2013-04-15 22:05:55
我建议你做几件事:
这里有更多信息:http://framework.zend.com/manual/2.0/en/modules/zend.crypt.key.derivation.html
文档也对此实现进行了提示:http://framework.zend.com/manual/2.1/en/modules/zend.authentication.adapter.dbtable.html
https://stackoverflow.com/questions/16016197
复制相似问题