3

我正在将我的新工作中的 cakephp 应用程序从 l.1 升级到 1.2。我正在用强大的 Auth 组件替换自制的 1.1 授权代码。问题是密码没有在遗留数据库中散列。如何暂时关闭密码散列,以便开始使用 Auth 组件。

别担心,我会散列密码并稍后更改。

4

2 回答 2

4

这是改编自另一个堆栈溢出答案的解决方案。通过覆盖 User::hashPassword 模型基本上什么都不做。

如何替换 cakephp 密码哈希算法?

<?php
class User extends AppModel {
    var $name = 'User';

    // this is used by the auth component to turn the password into its hash before comparing with the DB
    function hashPasswords($data) {
         return $data;
    }
}
?>
于 2009-12-12T19:59:48.820 回答
0

从技术上讲,您可以使用下面的查询一举散列数据库中的所有密码。首先备份您的表!

UPDATE user_table SET password = SHA1(password)

在 CakePHP 手册中,默认的散列方案是 SHA-1,所以除非你改变它,否则应该这样做。SHA1是一个内置的 MySQL 函数,尽管我认为它在大多数其他数据库中也可用。

于 2009-12-12T18:32:20.343 回答