jbrass
jbrass

Reputation: 941

Turn of Cakephp Auth password hashing

I am upgrading a cakephp app at my new job from l.1 to 1.2. I am replacing the homegrown 1.1 authorization code with the great Auth component. The problem is that the passwords are not hashed in the legacy DB. How can I turn off the password hashing temporarily so I can start using the Auth component.

Don't worry, I will hash the passwords and change this later.

Upvotes: 3

Views: 5847

Answers (2)

jbrass
jbrass

Reputation: 941

Here is the solution adapted from another stack overflow answer. By overriding the User::hashPassword model to do nothing basically.

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

Upvotes: 4

Christian P.
Christian P.

Reputation: 4884

Technically you could just hash all the passwords in the database in one swoop, using the query below. BACKUP YOUR TABLE FIRST!

UPDATE user_table SET password = SHA1(password)

From the CakePHP manual, the default hashing scheme is SHA-1, so unless you've changed it this should do it. SHA1 is a built-in MySQL function, though I assume it's available in most other databases as well.

Upvotes: 0

Related Questions