0

重複の可能性:
phpMailer での md5 パスワード

皆さん、こんにちは。これを読んでくれてありがとう。メールアカウントのパスワードを md5 形式でデータベースに保存しました。次に、次のコードを使用してphpMailerを介してウェブマスターに通知メールを送信すると、stmp接続失敗エラーが発生します。md5 暗号化なしの同じコードは完全に機能します。

  $mail = new PHPMailer(); 
  $mail->IsSMTP(); // send via SMTP
  $mail->SMTPAuth = true; // turn on SMTP authentication
  $mail->Username = $USR_EMAIL; // SMTP username
  $mail->Password = md5($MAIL_PWD); // SMTP password
  .
  .
  .

md5パスワードでメールを送信しない理由を知っている人はいますか? class.phpMailer に何かを変更する必要がありますか? これを読んでくれてありがとう

4

2 に答える 2

2

パスワードをダブルハッシュしているように見えます。あなたが言うように、それはデータベースに md5 形式で保存され、次にそれを再度 md5 するので、実際には次のことを行っています。

$passwd = 'hello';
$mail->Password = md5(md5($passwd));

多分

$mail->Password = $MAIL_PWD;

動作します。

ただし、ほとんどの場合、md5 ハッシュをメール サーバーに送信して動作させることはできないことに注意してください。サーバーは、送信したパスワード テキストの独自のハッシュ化/暗号化を行います。パスワードの md5 は、実際のパスワードとは大きく異なります。ハッシュ化されたバージョンではなく、パスワードの実際の生のテキストを送信する必要があります。

于 2012-06-19T22:42:34.557 に答える
1

データベースのパスワードは MD5 形式で保存されていると言います。次に、あなたが今行っているフローを見ると、次のようになります。

データベース (MD5 のパスワード) -> PHP コード (パスワードを MD5 に変換) (SMTP にアクセス)

MD5 に変換する時点で、実際には md5(md5("password")) を実行します。ターミナルでそれを行うと、次のようになります。

localhost:~ user$ md5 -s password
MD5 ("password") = 5f4dcc3b5aa765d61d8327deb882cf99
localhost:~ user$ md5 -s 696d29e0940a4957748fe3fc9efd22a3
MD5 ("5f4dcc3b5aa765d61d8327deb882cf99") = 696d29e0940a4957748fe3fc9efd22a3

これが当てはまらない場合は、既に MD5 に変換されている場合は、PHPMailer ソースの Password メソッドを調べてみてください。使用するハッシュ方法を選択するために、クラス/オブジェクトでも設定されているのではないでしょうか?

于 2012-06-19T22:45:38.143 に答える