Help us understand the problem. What is going on with this article?

かつお君へ PHPのcryptでログイン処理を作成

More than 3 years have passed since last update.

cryptはDESによるハッシュ生成の場合、8文字になります。
SALTを指定することにより他の暗号化処理よりセキュアです。
DBに保存するパスワードは、基本的に入力した値をハッシュ化し、照合する場合も入力されたパスワードをハッシュ化して同じかどうか確認します。
詳しくは下記のURLを参照して下さい。

bootstrap.phpの末尾にSALTを設定して下さい。
SALTはCRYPT_BLOWFISH($2a$ $2x$ $2y$ のどれか、2桁のコストパラメータ、$./0-9A-Za-zからランダムな22文字の系29文字)が好ましいかと思われます。
※SALTは例です。

App/Config/bootstrap.php

define('SALT','$2a$01$katsuokun./fight./2015');

ユーザ登録画面では、受け取ったPOSTデータのパスワードにcryptを掛けます。
先ほどdifine()でconstを作成したので、$を付けずにSALTのみで定数を読み込めます。

App/Controller/User.php
public function registUser() {
    if ($this->request->is('post'))
    {
        $this->loadModel('User');
        $this->request->data['User']['pass'] = crypt($this->request->data['User']['pass'], SALT);
        $this->User->save($this->request->data);
    }
}

ログイン時には受け取ったパスワードにcryptを掛けデータの確認をします。

App/Model/User.php

public function checkUserLogin($id, $pass) {
    return $this->find('first', array('conditions' => array('id' => $id, 'pass' => crypt($pass, SALT))));
}

これでパスワードは完全に利用するユーザ本人のみしか分からなくなりました。
こんなかんじで実装をお願いします。

こちらも参考にするといいかもしれません。
* 英数字のランダムパスワード作成

=====

SALTを固定化するのは良くないと指摘をいただいたので新しく書き直しました!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした