2012-05-07 2 views
0

Привет ребят я недавно начал использоватьPHP преобразование всех паролей в БД

$salt = $uniqueSalt; 

$cryptpassword = md5($salt.$password); 

Как конвертировать весь пароль в моей базе данных MySQL с этим, так что не влияет на пользователь?

паролей в моем ате базы данных в виде простого текста, я хочу, чтобы преобразовать все обычные текстовые пароли md5 с солью

+1

Соль не должны быть уникальными для каждого хэша. – Gumbo

+3

@Gumbo: Разве вы не имеете в виду соль * должна быть уникальной для каждого хэша? –

+1

@ Rocket Да, конечно; Я изменил предложение, а не то, что я хотел сказать. К сожалению, я не могу редактировать его снова. – Gumbo

ответ

3

Я рекомендую вам прочитать больше о соли и как использовать их. Они не должны быть постоянной строкой, а чем-то уникальным для каждого пользователя. Например, имя пользователя. Или мой личный фаворит: дата регистрации (с точностью до 1 секунды, конечно).

Кроме того, если вы храните пароли в своей БД в качестве хешей MD5, невозможно конвертировать пароли. MD5 - одно из способов хэширования, вы не можете получить исходные пароли, чтобы применить соль и перефразировать. Если вы абсолютно хотите применить это, то единственный способ сделать это - заставить каждого пользователя изменить свой пароль и применить новый алгоритм, когда они это сделают. Есть 2 проблемы с этим:

  • большинство пользователей не собираются нравится
  • вы должны следить за которые пользователь сделал изменения и который не сделал. Это необходимо для предотвращения проблем при входе в систему.
+1

Вам не нужно принуждать пользователей изменять свои пароли. Вы можете при первом входе в систему проверить, все ли они уже установлены в новой системе хеширования, и если не проверить свой пароль со старой системой, и если это правильно, создайте новый хэш на основе пароля, который он поставил. Если он уже был в новой системе, просто проверьте с помощью новой системы хэширования. Через некоторое время вы, однако, можете заставить пользователей сбросить свой пароль, чтобы полностью перейти к новой хэш-системе. – Zombaya

+0

@ Zombaya Вы правы. Я не думал об этом. Спасибо за совет :) . –

+0

Лучше использовать счетчик итераций в дополнение к хэшированию (в настоящее время хеширование MD5 очень быстро, не говоря уже об этих радужных таблицах). И лучший способ применить счетчик итераций - использовать такой алгоритм, как bcrypt или PBKDF2. –

0

как раз так, но вы должны изменить свой логин, чтобы вы не проверяли пароль, но для md5 ($ salt. $ Password);

но как мое forposters сказал, его не так много надежнее и если пароль разве уже ясно, в вашей базе данных вы, вероятно, не получите его как обычный текст, если он хеширован

Смежные вопросы