2012-01-05 1 views
2

私のサイトのパスワードリセット機能をCakePHPに書き込もうとしています。私は$auth->hashPasswords$auth->password、さらにはSecurity::hashを使ってみましたが、正しくハッシングするものはありません。私が試してみて、ログインするために使用されるハッシュ注目し、foobarにでログインを試みた:cfb9fabf02497f9090cbba6b03da4764212cea407cakephpのパスワードがハッシュ化されていない

をしかし、リセットが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

私はそれが自動的に "パスワード"と呼ばれるフィールドをハッシュすると信じています。もしあなたがそれを再びハッシュしているなら、それはそれを混乱させます。 – Dave

+0

それであなたは塩を使って1つを言いますが、もう1つはそうではありませんか?私は内部コードをチェックしています、そして、彼らはそれを使用しなければならないように見えますが、どのように私は確かに言うことができますか? – LordZardeck

答えて

5

問題がされています。したがって、手動で行うと、実際には2回ハッシュしています。

名前を "password1"、 "mypass"、 "toiletpaper" ...などの名前に変更すると、自動ハッシュされないようにするか、追加のハッシュを削除できます。

+1

これはうまくいきました。最初は私のために働かなかった理由は、ユーザー名も持っていなかったからです。自動ハッシングは、ユーザー名とパスワードの両方が指定されている場合にのみ機能します。私はパスワードを提供していただけだった。 – LordZardeck

+1

将来のユーザーにとっては、これはケーキ1.3(およびおそらく古いバージョン)にも当てはまります。 ** 2.0 **の自動パスワードハッシング[もっと長く適用](http://book.cakephp.org/2.0/ja/core-libraries/components/authentication.html#hashing-passwords) – Ross

+0

彼はかなり以前の質問でカバーされていることに注意してください - リンクするだけです:http://stackoverflow.com/questions/7857168/password-does-not-hash-in-cakephp – mark

関連する問題