Насколько безопасен этот способ хранения паролей?

Я понимаю и признаю, что хранение паролей в моей собственной базе данных является огромной дырой в безопасности по сравнению с использованием таких сервисов, как 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 ответ

Решение

Это очень плохо (хотя может быть и хуже)

  1. SHA1 не очень безопасен.
  2. Все функции прямого хеширования слишком быстрые, чтобы использовать их для паролей.

Вы должны использовать PBKDF2 или bcrypt или scrypt.

Другие вопросы по тегам