Насколько безопасен этот способ хранения паролей?
Я понимаю и признаю, что хранение паролей в моей собственной базе данных является огромной дырой в безопасности по сравнению с использованием таких сервисов, как Google или Facebook, но мне было интересно, можно ли использовать следующий код для безопасного хранения имен пользователей и паролей с использованием соленого хэша:
$username = $_POST['user']
$salt = md5(openssl_random_psuedo_bytes(24, true));
$pass = sha1($salt.$_POST['pass'])
Я считаю, что это довольно безопасно, но я не эксперт.
РЕДАКТИРОВАТЬ:
Я думаю, что это было бы лучше, не так ли?
$salt1 = md5(sha1(openssl_random_psuedo_bytes(32, true));
$pass = password_hash($_POST['pass'] . $salt1, PASSWORD_BCRYPT);
Я ближе к поиску достойного механизма для хранения паролей?
1 ответ
Решение
Это очень плохо (хотя может быть и хуже)
- SHA1 не очень безопасен.
- Все функции прямого хеширования слишком быстрые, чтобы использовать их для паролей.
Вы должны использовать PBKDF2 или bcrypt или scrypt.