8

password_hash() 関数を使用してユーザーのパスワードを暗号化することを考えています。この関数は、提供しない場合、デフォルトでソルトを生成することを理解しています。独自のソルトではなく、デフォルトのソルトを使用することをお勧めします。現在、3つのオプションを検討していますが、どれにするか決めかねていますので、お役に立てれば幸いです。

1. オプション: password_hash() とデフォルトのソルト

$passwordInput = $_POST['password'];
$passwordHash = password_hash($passwordInput, PASSWORD_BCRYPT);
//INSERT $passwordHash INTO DATABASE

2.オプション:カスタムソルトを使用したpassword_hash()

$options = ['salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)];
$passwordInput = $_POST['password'];
$passwordHash = password_hash($passwordInput, PASSWORD_BCRYPT, $options);
//INSERT $passwordHash INTO DATABASE

3. オプション: password_hash() をまったく使用しない

このオプションは、2014 年の投稿に基づいています: The definitive guide to form-b​​ased website authentication . 基本的に、それが password_hash() よりも安全なアプローチである場合、私は次のようなものを使用します:

$salt = uniqid(rand(0, 1000000);
$passwordInput = $_POST['password'];
$password = hash('sha512', $salt . $passwordInput);
//INSERT $password AND $salt INTO DATABASE SEPARATELY
4

1 に答える 1