Как зашифровать пароли всех наборов данных в моей таблице MySQL?

Как зашифровать пароли всех наборов данных в моей таблице MySQL?

Я использую сервер ProFTPD с MySQL-бэкэндом для аутентификации пользователей.

Пароли пользователей в настоящее время находятся в открытом виде. И моя цель заключается в том, чтобы все пользователи имели зашифрованные пароли, хранящиеся в базе данных.

Я знаю, что когда мне нужно зашифровать один пароль одного пользователя, я могу ввести команду SQL:

update users set password= md5('MyPassword') where password="myPassword"; 

Но как мне зашифровать все пароли всех пользователей?

Надеюсь, кто-нибудь сможет мне помочь.

решение1

update users set password= md5('MyPassword') where password="myPassword"; 

Использовать MD5 в качестве хэша небезопасно. MD5 устарел

Безопасные алгоритмы хеширования — это PBKDF2, bcrypt, scrypt и т. д. Кроме того, все алгоритмы хеширования должны использоваться с солью. @Gerald Schneider опубликовал очень хорошую ссылку по этой теме:https://security.stackexchange.com/questions/211/how-to-securely-hash-passwords

Проблема в том, что ни один из этих алгоритмов сохранения хэша не реализован в mysql. В ProFTPD в модуле mod sql есть режим аутентификации для PBKDF2. Но нет способа OOTB, чтобы вы могли сгенерировать хэшированный пароль PBKDF2 или пароль, хэшированный другим безопасным алгоритмом, в базе данных mysql.

Возможным решением было бы создание HTML-страницы с помощью PHP. PHP имеет функции, реализованные по умолчанию, для генерации безопасных хешированных паролей.

Я спросил на форуме ProFTPD, знает ли кто-нибудь другой, возможно лучший ответ на эту проблему: https://forums.proftpd.org/smf/index.php/topic,12110.0.html

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

Связанный контент