Добавление новых пользователей в базу данных и генерация им уникальных паролей - PullRequest
0 голосов
/ 01 июня 2011

В настоящее время у меня есть большая пользовательская база данных, где у каждого пользователя есть уникальный пароль.Все пароли зашифрованы MD5.Первоначально я настроил его, преобразовав список пользовательских данных в SQL, сохранив таблицу Excel, которая у меня была в виде CSV, а затем преобразовав ее в SQL на csv2sql.com.Затем я использовал sql для создания уникальных паролей в следующей командной строке:

UPDATE users SET numbers = SUBSTRING(MD5(RAND()) FROM 1 FOR 10)

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

UPDATE users SET `password` = MD5(`password`)

Все это работало нормально, хотя и не самым эффективным способом борьбы с ним.Теперь мне нужно добавить еще целую нагрузку в базу данных.Конечно, я должен сохранить оригинальные пароли от первоначальных пользователей.Я могу вставить новых пользователей, но я не уверен, как я собираюсь создавать новые пароли для них, не меняя все предыдущие.Может кто-нибудь указать мне правильное направление, пожалуйста!

1 Ответ

1 голос
/ 01 июня 2011
  • Вы можете импортировать CSV во временную таблицу, внести в нее изменения, а затем insert into users (...) select ... from temp_users

  • Вы можете добавить столбец «незашифрованный пароль».в свою пользовательскую таблицу импортируйте csv, чтобы в этом столбце находился незашифрованный pw, а затем выполните update users set password = md5(unencrypted_password) where unencrypted_password is not null

  • . Вы можете использовать другой csv-sql-конвертер.Как хак, я часто импортировал CSV в Excel / OO-Calc, и сделал столбец, подобный этому: =concat('insert into table (...) values (', A1, ', ', A2, ')');, что позволило мне сделать пользовательские SQL-операторы

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