首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Zend Framework2的身份验证中使用加密和salt

在Zend Framework2的身份验证中使用加密和salt
EN

Stack Overflow用户
提问于 2013-04-15 21:18:56
回答 1查看 2.7K关注 0票数 0

我是一个初学者,但我一直在努力学习如何使用Zend Framework2。我正在使用一个从公共存储库克隆的模块来验证用户。它使用MD5,如下所示:

代码语言:javascript
复制
$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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 22:05:55

我建议你做几件事:

  • 向您的users表添加另一个列,称为salt或类似列。用户注册时,请创建盐并将其存储到此列中。
  • 将站点的静态盐存储在配置文件中。
  • 当用户注册时,请使用散列函数(如果愿意,使用sha2)并将密码、静态盐和自定义盐连接到一个经过散列处理的字符串中。
  • 存储散列,并确保在登录时使用相同的方法检查密码。

这里有更多信息: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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16016197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档