2015-02-19 5 views
0

Я реализовал Spring Security с использованием хэшированных паролей. Теперь мне нужно обновить все пароли в обычном тексте для хэширования. Проблема в том, что у меня более 120000 пользователей, и требуется слишком много времени для обновления в Java (с использованием Hibernate)Хеширование массового пароля Spring Security

Есть ли лучший способ сделать это в MySQL?

ответ

0

MySQL поддерживает encryption functions. Например, если вы используете SHA-1, вам просто нужно будет называть что-то вроде этого

update user set password = SHA1(password) 
+0

Я использую org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder в моем приложении. Есть ли альтернатива MySQL для этого? – Lubos

+0

Вы можете попробовать с помощью функции 'ENCRYPT', но она не будет работать в Windows, поскольку использует функцию' crypt() 'OS (Unix)'. –

1

Ваша операция потребляет много времени из-за высокого нет хитов базы данных. Вы можете свести их к минимуму -

  1. Сначала делают BCP из в файл

    bcp db.my_table encrypted_file.txt -c -t\t -b{batch_size} -S{your_server} -U{username} -P{password}

  2. Затем обработать файл и зашифровать все обычный пароль

  3. Теперь сделайте BCP в

    bcp db.my_table in encrypted_file.txt -c -t\t -b{batch_size} -S{your_server} -U{username} -P{password}

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