Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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. Есть режим аутентификации для PBKDF2 в ProFTPD в модуле mod sql. Но OOTB не может создать хешированный пароль PBKDF2 или пароль, который хешируется другим безопасным алгоритмом в базе данных mysql.

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

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

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