php - Zend_Auth_Adapter_DbTable 和 PHP crypt

标签 php zend-framework zend-auth crypt

我正在使用 PHP crypt() 在 Zend php 应用程序中散列我的密码。但是,我想不出将此散列与 Zend_Auth_Adapter_DbTable 一起使用的解决方案。假设我在使用 crypt() 运行后存储了密码哈希...

    //Salt and hash...
    $salt = '$2a$07$'.$this->getSalt();
    $data['password'] = crypt($user_object->password, $salt);
    $this->_db_table->insert($data);

    //Authentication...
    $dbAdapter = Zend_Db_Table::getDefaultAdapter();
    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
    $authAdapter->setTableName('users')
                ->setIdentityColumn('username')
                ->setCredentialColumn('password')
                //Now what? Possibly...
                ->setCredentialTreatment(/* But how? */);

如何使用具有这种加盐和散列策略的 Zend_Auth_Adapter_DbTable 表对象?我环顾四周,但除了 MD5 和 SHA 类型哈希之外,真的找不到任何解决方案...

最佳答案

如果您将 Salt 存储在用户表中,您应该创建自己的适配器

如果你在其他地方有盐,你只需要加密密码,然后将它传递给适配器

$authAdapter->setCredential($cryptedPassword);

几周前我遇到了同样的问题,我最终创建了自己的适配器,扩展了 Zend_Auth_Adapter_DbTable

我实际上向后移植了 ZF2 Bcrypt 库,但您应该能够将它与 crypt 方法一起使用。

想看就看AuthAdapter-DbTableBcrypt

关于php - Zend_Auth_Adapter_DbTable 和 PHP crypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12416752/

相关文章:

php - 使用 Paypal 锁定模型推车

php - Zend_Auth的多个实例(二)

php kohana 功能测试数据库环境

php - 如何从域的根目录中包含 PHP?

php - 如何将绝对系统路径转换为 ​​IShellFolder?

php - 如何在 Zend Framework 中进行 Bind 和 LIKE

php - 在 PHP Smarty 模板引擎上禁用缓存?

php - 我在哪里放置 View 助手所需的 View 脚本(使用 Zend_View 和默认目录布局)?

php - 在 PHPUnit 测试中隔离 Zend_Session

php - Zend 导航 : Where should I load the ACL 'Role' in a private application