Как вы надежно храните пароль пользователя и соль в MySQL?

Так, я узнал на том, Так, чтобы вы, как предполагалось, хешировали пароль вместе с "солью". (Статьи могут быть найдены здесь и здесь .)

Вот код:

$password = 'fish';

/* should be "unique" for every user? */
$salt= 'ABC09';

$site_key = 'static_site_key';

hash_hmac('sha1', $password . $salt, $site_key);

И теперь я должен сохранить и $password и $salt в MySQL, как так:

+---------+--------+----------+-------+
| user_id |  name  | password |  salt |
+---------+--------+----------+-------+
|    1    | krysis |  fish**  | ABC09 |
+---------+--------+----------+-------+

** рыба будет, конечно, хеширована и не сохранена в простом тексте.

И я просто задаюсь вопросом, имеет ли на самом деле смысл делать это этот путь, потому что этот путь хакер или кто бы ни будет также знать соль? Так, если они взламывают пароль и видение, что это fishABC09, они автоматически будут знать, что пароль рыба ? Или он никогда не мог бы мочь взломать пароль, потому что он не знает secret_key, поскольку он не хранится в базе данных?

я сожалею, если я не имею никакого смысла. Я просто всегда использовал sha1 для паролей, и сегодня я нашел эти статьи, которые говорили о добавлении соль .

16
задан Community 23 May 2017 в 11:55
поделиться