我使用散列密码实现了Spring Security。现在我需要更新纯文本中的所有密码进行哈希处理。问题是我有超过120000个用户,用Java(使用Hibernate)更新它需要太多时间
在MySQL中有更好的方法吗?
答案 0 :(得分:1)
由于没有数据库命中率,您的操作会消耗大量时间。你可以把它们减到最小 -
首先将 bcp out 添加到文件
bcp db.my_table encrypted_file.txt -c -t\t -b{batch_size} -S{your_server} -U{username} -P{password}
然后处理文件并加密所有普通密码
现在执行 bcp in
bcp db.my_table in encrypted_file.txt -c -t\t -b{batch_size} -S{your_server} -U{username} -P{password}
答案 1 :(得分:0)
MySQL确实支持某些encryption functions。例如,如果你使用SHA-1,你只需要调用类似这样的东西
update user set password = SHA1(password)