私は、php mcryptは非難されていると言われました。私はパスワードをハッシュして塩をかけるために別の方法を使うべきです。mcryptは推奨されていませんか? PHPでパスワードを正しく暗号化して保存するには?
これは私が現在何をすべきかです:
public function saveNewUser(array $data) {
$passwd = $this->mysqli->real_escape_string($datas['passwd']);
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)
];
$hashed_passwd = password_hash($passwd, PASSWORD_BCRYPT, $options);
$this->optin_hash = md5(rand());
//...
//save user in DB with hashed passwd
ログイン:
if (password_verify($_POST['user_password'], $result_row->gmw_usr_passwd)) {//do some login stuff}
1)パスワードを暗号化、保存するために、最新かつ最も安全な方法は何ですか? 使用例を教えてください。または、パスワードを正しく暗号化して保存するにはどうすればいいですかとログインの確認方法?私はpassword_hashについて何か読み、PHPのドキュメンタリーで
2):
password_hash()は、強力な一方向ハッシュアルゴリズムを使用して新しいパスワードのハッシュを作成します。 password_hash()はcrypt()と互換性があります。したがって、crypt()によって作成されたパスワードハッシュをpassword_hash()とともに使用することができます。
(...)
塩のオプションはPHP 7.0.0で廃止された 警告。既定で生成される塩を単に使用することが今や好ましい。
2.a)password_hashは私が使用したものの代わりですか?
2.b)私は自分で塩を加える必要はありませんか?
2.c)私が使ったブローフーズの栄養と私が追加した他のステップはどうでしたか?もう必要ないのですか?
2.d)password_hashを使用すると、ログインのパスワードを確認する方法を教えてください。
EDIT:申し訳ありません私は既にpassword_hashを使用しています(これは非常に短いコーディングナイトでした)。
Artjom Bで説明したように、私は、mcryptのを必要としない(?)
ランダムバイトを生成するためにmcryptは必要ありません。OpenSSL拡張機能にも同様の機能があります。 –
このオプションを削除するだけですか?私は代わりにこれを使用します:$ options = ['cost' => 11]; –
さて、それはあなたが塩のために持っている要件に依存します。あなたが実際にデフォルトと異なる特定の長さの塩が必要な場合は、単純にデフォルトを使用することはできません。しかし、デフォルトは完全にうまく、私はそれを使用しない理由がないと思う。 –