そのため、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);
}