0

そのため、Web アプリケーションにアカウントを持っています。パスワードを変更しようとすると、エラー ページにリダイレクトされ、その理由がわかりません。いずれかのアカウントのパスワードを変更したい。

dc7f3da29862d3d5b3d3cd32356659ea7e85ed032b9c5144f5

パスワードはこのように保存されます(パスワードは単なるものpasswordなので、ここにあることは気にしません)

{
                            $result = $this->User->editUser($id,$username, $email, $name, $surname, $phone, $hash);
                            if ($result == true)
                            {
                                $this->set('has_message',true);
                                $this->set('css_name','success');
                                $this->set('errors',"<p>User successfully updated.</p>");
                                $profile = $this->User->getUserbyid($id);
                                $this->set('profile',$profile);
                                $this->User->closeConnection();
                            }
                            else
                            {
                                $this->User->closeConnection();
                                $this->set('has_message',true);
                                $this->set('css_name','error');
                                $this->set('errors',"<p>Something went wrong please try again.</p>");
                            }
                        }

これはユーザー アカウントを編集するためのコードです。PHP は初めてなので、他に必要なコードがあれば教えてください。ユーザーがパスワードを変更できなくてもかまわないので、代わりに PHPMyAdmin でパスワードを変更してください。

ハッシュ方法:

$salt = $this->create_salt_password($username);
                $hash = $salt . $password;
                for ( $i = 0; $i < 100000; $i ++ ) 
                {
                    $hash = hash('sha256', $hash);
                }
                $hash = $salt . $hash;

そして config.php でソルト

define('AUTH_SALT','wcRwGxDzULe?s3J%R^W@9)r}xfXpESul5hC,z^ze.oz*1E|ys,Bk,:Q/z_I&M9..');

public function create_salt_password($username)
        {
        /** Creates a hash value for the password using 
            a prefixed random unique identifier value with a static characters and the username
        */
            $salt = hash('sha256', uniqid(mt_rand(), true) .AUTH_SALT .strtolower($username));
            return $salt;
        }

ログイン スクリプト:

$salt = substr($results->password, 0, 64);
                $password = $salt . $password;
                for ( $i = 0; $i < 100000; $i ++ ) 
                {
                    $password = hash('sha256', $password);
                }
4

1 に答える 1