0

MySQL に保存されている電子メール ユーザー アカウントを別のサーバーに転送するのに問題があります。詳細は次のとおりです。

MySQL を使用してユーザー アカウント情報を保存する古いメール サーバーがあります。パスワード フィールドは、MySQL ENCRYPT 関数を使用してユーザーのパスワードを保存します。したがって、ユーザーのパスワードを変更したい場合は、次のことができます。

 UPDATE  `mail`.`users` SET  `password` = ENCRYPT(  '12345' ) WHERE CONVERT(  `users`.`email` USING utf8 ) =  'g@veecall.com' LIMIT 1 ;

次に、新しいパスワード「12345」が「2I6JOeg.JukJ」の文字列としてテーブルに保存されます。

ここで、iRedMail を使用して新しいサーバーを構築します。ユーザー アカウントを転送しようとすると、パスワード フィールドを転送できません。iRadMail/dovecot は MD5-CRAM を使用してパスワードを暗号化し、MySQL に保存するためです。すべてのパスワード文字列は「$1$」で始まります。

では、MySQL で暗号化されたパスワード文字列「2I6JOeg.JukJ」を作成する方法はありますか。MD5 ハッシュ "$1$......" に変換しますか?

手伝ってくれてありがとう。

4

1 に答える 1

1

まず、MD5 はハッシュ アルゴリズムであり、暗号化アルゴリズムではありません。これの主な理由は、MD5 によって生成されたハッシュ値から元のパスワードを計算することが実質的に不可能であるためです。MD5 はハッシュ値を作成します。これは基本的にトラップ ドア関数です。つまり、一方向関数です。

暗号化により、キーを知っていれば暗号化および復号化できます。大きな違い。ご理解いただければ幸いです。

今あなたの問題のために。

暗号化される前の元のパスワードを持っていない限り、力ずくで MD5 に相当するパスワードを作成する合理的な方法はありません。暗号化されたパスワードのハッシュと、暗号化されていない/平文のパスワードのハッシュは、2 つの異なる考えになります。

現在持っているすべてのパスワードをプレーン テキスト形式で復号化できる場合は、プレーン テキスト値に対して MD5 ハッシュを実行できます。元のプレーンテキストを取得できない場合は、運が悪いです。

于 2013-07-18T22:30:29.480 に答える