2011-06-01 20 views
0

我目前有一個龐大的用戶數據庫,其中每個用戶都有唯一的密碼。所有的密碼都是md5加密的。我最初設置的方式是將用戶詳細信息列表轉換爲SQL,方法是保存我作爲CSV使用的Excel表,然後將其轉換爲SQL在csv2sql.com。然後我用SQL與下面的命令行創建唯一的密碼:將新用戶添加到數據庫並生成唯一密碼

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

爲了確保該命令沒有產生我做密碼字段一個唯一的字段重複。然後我導出了這張表,所以我有了所有原始密碼的副本。一旦出口我使用下面的命令行,然後加密的名單MD5:

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

這一切都工作得很好,雖然不是對付它的最有效方式。 現在我必須將更多用戶加載到數據庫。當然,我必須保留原始用戶的原始密碼。我可以插入新用戶,但我不確定如何在不更改所有以前的用戶的情況下爲其創建新密碼。請有人指出我在正確的方向!

+0

確實誰輸入密碼這實際上是用戶在使用中,會收到警告:密碼已被使用? .... – helle 2011-06-01 09:15:59

回答

1
  • 你可以導入CSV到一個臨時表中,執行您的修改那裏,然後insert into users (...) select ... from temp_users

  • 你可以列「未加密的密碼」添加到您的用戶表,導入CSV,使未加密的密碼在該列中,然後運行update users set password = md5(unencrypted_password) where unencrypted_password is not null

  • 您可以使用不同的csv-sql轉換器。作爲黑客,我經常進口的CSV到Excel/OO-計算,並提出這樣的列:=concat('insert into table (...) values (', A1, ', ', A2, ')');,這讓我做定製的SQL語句

相關問題