Безопасен ли этот метод хранения паролей? - PullRequest
2 голосов
/ 04 августа 2011

Я просто думал, безопасно ли использовать создание хэша пароля с использованием соли, созданной из самого пароля.Вот пример в php:

<?php
$pass = $_GET['pass'];
$salt = hash('whirlpool', $pass);
$pass = md5(hash('whirlpool', $salt.$pass));
echo $pass;
?>

Имеет ли это смысл?

С уважением.

Ответы [ 4 ]

5 голосов
/ 04 августа 2011

Соль в том, чтобы сделать каждый пароль уникальным.Таким образом, в этом случае простое хеширование их пароля и добавление его в виде соли все равно сделало бы окончательный хешированный пароль 2 пользователей равным, когда указан тот же оригинальный пароль.Лучше дать каждому пользователю случайную соль и сохранить ее рядом с паролем в БД.

3 голосов
/ 04 августа 2011

Нет необходимости хешировать, заново хэшировать и заново хэшировать пароль.

Использование соли с хорошим алгоритмом хеширования - это хорошо, но вам нужно заставить своих пользователей отправлять надежные пароли с минимальным размером и буквенно-цифровыми символами

Примечания:

  • Использование sha1 лучше, чем md5.
  • Используя хорошую соль (спасибо @Джон Варфоломей)
  • Заставьте своих пользователей создать надежный пароль
0 голосов
/ 15 июня 2012

Вы можете защитить как свой пароль, так и свою соль.

  1. Используйте SHA256 или выше (2012), и в последующие годы оно должно быть выше.

  2. Используйте разные соли для каждого пользователя.

  3. Используйте вычисленную соль.

  4. Создайте соль размером от 16 до 32 байт и сохраните ее в базе данных, которая называется DBSalt.

  5. Создайте любой старый алгоритм для работы с солью, но сохраняйте алгоритм только в коде.Даже такая простая вещь, как DBSalt + 1, полезна, потому что, если кто-то получает вашу базу данных, у него нет правильной соли, потому что вычисляется правильная соль.

  6. Рассчитайте ваш пароль следующим образом:

    CreateHash (saltAlgorithm (dbSalt), пароль);

  7. Вы можете добавить защиту, имея список алгоритмов, которые манипулируют DBSalt различными способами.Каждый раз, когда пользователь меняет свой пароль, вы также используете различные вычисления для DBSalt

  8. . Вы можете повысить безопасность, сохранив эти алгоритмы на внешних серверах вашей системы, так что если ваша БДи код оба взломаны, они по-прежнему не имеют вашей соли.

    1. Вы также можете повысить безопасность, используя соль до и после, либо только соль и база данных не предоставляют эту информацию.

Нет конца комментариям "Вы можете повысить безопасность с помощью ...".Просто помните, что каждый раз, когда вы добавляете безопасность, вы добавляете сложность, стоимость и т. Д. *

Как эффективно посолить пароль, хранящийся в виде хэша в базе данных

0 голосов
/ 04 августа 2011

Я делаю это так

<?php

$my_key = "myapp";
$temp_pwd = htmlentities(trim($_POST['password']));
$hashed = sha1($my_key.$temp_pwd);

save $hashed in database on signup
and with every login attemp merge the input password value with your key and make a hash of it and than compare with database password value


?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...