2011-07-18 16 views
4

私はクライアントのWebシステムを更新しています。彼のアカウントテーブルには20,000人以上のユーザーがいて、それぞれのパスワードフィールドには文字列があり、パスワードは暗号化されていません。 (私は知っている、恐ろしい!)とにかく、私はこれらのパスワードをすべて取る方法を知って、それらを簡単に暗号化して、バッチ式で、そしてそれらをdbに戻して戻すことが望ましい。私は検索で多くを見つけることができませんでした。私はB-Cryptを見ましたが、それは主にファイル用に使われるようです。私はこれでかなり初心者ですので、どんな提案も大歓迎です!ありがとう。 :)MySQLデータベースの既存のパスワードをバッチ暗号化するにはどうすればよいですか?

+0

+1 *私が知っている、怖い! – Nishant

答えて

2

ここにこれを行う方法があります。 「table_Usersは」あなたのパスワードが保持されているテーブルと「パスワード」である

UPDATE table_Users 
SET password = EncryptionFunctionYouChoose(password); 

EDIT は、パスワードの列名です。 END EDIT

暗号化するのではなく、個々のsalt値で各パスワードをハッシュする方が良いでしょう。 (私の意見)

1

私が知る限り、MySQLは内蔵のB-CRYPT機能を提供していません。 Refer。あなただけ使用してこの問題を解決したい場合はMySQLは

update users set password = SHA2(password, 256); 

ような何かを行うことができ照会しかし、あなたはbcryptのが好きならば、私はあなたがアプリケーションレベルでそれを行う必要がありますね。

データベースにパスワードを保存することについては、常に興味深い議論があります。 this list

関連する問題