转动Cakephp Auth密码哈希

时间:2009-12-12 17:57:21

标签: authentication cakephp hash cakephp-1.2

我正在将我的新工作中的cakephp应用程序从l.1升级到1.2。我正在用伟大的Auth组件替换自己开发的1.1授权代码。问题是密码不会在旧版DB中进行哈希处理。如何暂时关闭密码哈希,以便我可以开始使用Auth组件。

别担心,我会哈希密码并稍后更改。

2 个答案:

答案 0 :(得分:4)

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

How do I replace the cakephp password hashing algorithm?

<?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;
    }
}
?>

答案 1 :(得分:0)

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

UPDATE user_table SET password = SHA1(password)

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