我正在将我的新工作中的cakephp应用程序从l.1升级到1.2。我正在用伟大的Auth组件替换自己开发的1.1授权代码。问题是密码不会在旧版DB中进行哈希处理。如何暂时关闭密码哈希,以便我可以开始使用Auth组件。
别担心,我会哈希密码并稍后更改。
答案 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函数,虽然我认为它也可以在大多数其他数据库中使用。