2012-01-05 2 views
2

CakePHP에서 내 사이트의 암호 재설정 기능을 쓰려고합니다. $auth->hashPasswords, $auth->password 및 심지어 Security::hash을 사용해 보았지만 올바르게 해싱하지 않았습니다. 나는 시도하고 로그인하는 데 사용되는 해시 지적는 foobar로 로그인 시도 : cfb9fabf02497f9090cbba6b03da4764212cea407,cakephp 암호가 같지 않음

을하지만 리셋 5f4bb4b693725cea09cc7fc20603273f665534d8에 해시는 foobar한다.

내가 뭘 잘못하고 있니?

는 내 코드는 : 당신이 (CakePHP는 1.3 이전의)는 '이름'과 '암호'필드라는 필드가있는 경우, "비밀번호"가 자동으로 해시됩니다

$this->data['Player']['password'] = $this->Auth->password($this->data['Player']['password']); 
$this->Player->save($this->data); 
+0

저는 cakephp 사용자가 아니지만, 내부 해시를 사용하여 해시를 완전히 해시하는 암호를 해시하는 것처럼 들립니다. – Crontab

+1

나는 그것이 'password'라는 필드를 자동으로 해시한다고 믿습니다. 다시 해쉬를한다면, 엉망이 될 것입니다. – Dave

+0

그래서 소금을 사용하고 다른 하나는 사용하지 말고 있습니까? 내부 코드를 확인한 결과 코드를 사용하는 것처럼 보이지만 어떻게 알 수 있습니까? – LordZardeck

답변

5

문제가된다. 그래서 수동으로 할 때, 실제로 두 번 해시하는 것입니다.

"password1", "mypass", "toiletpaper"... 등의 이름으로 이름을 바꿀 수 있습니다. 자동 해시되지 않도록하거나 추가 해시를 제거 할 수 있습니다.

+1

이것이 효과가있었습니다. 그것이 처음에는 나를 위해 일하지 않은 이유는 내가 사용자 이름도 가지고 있지 않았기 때문입니다. 자동 해싱은 사용자 이름과 암호가 모두 제공 될 때만 작동합니다. 암호 만 제공하고있었습니다. – LordZardeck

+1

향후 사용자에게 중요한 점은 cake 1.3 (및 이전 버전)에 적용됩니다. ** ** ** **에서 자동 암호 해시는 더 이상 적용되지 않습니다 (http://book.cakephp.org/2.0/ko/core-libraries/components/authentication.html#hashing-passwords). – Ross

+0

또한 그의 질문은 이전의 몇 가지 질문에서 다루어 졌음을 알아야합니다. 하나만 연결하면됩니다. http://stackoverflow.com/questions/7857168/password-does-not-hash-in-cakephp – mark

관련 문제