带有phpMailer问题的md5加密密码

带有phpMailer问题的md5加密密码,php,Php,可能重复: 大家好,提前感谢大家阅读本文。 我已将电子邮件帐户的密码以md5格式存储在我的数据库中。然后,当我使用以下代码通过phpMailer向网站管理员发送通知电子邮件时,我得到一个stmp连接失败错误。没有md5加密的相同代码可以完美地工作 $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->SMTPAuth = true; // turn on SMTP authenticatio

可能重复:

大家好,提前感谢大家阅读本文。 我已将电子邮件帐户的密码以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吗?感谢您阅读此

您似乎在对密码进行双重哈希运算。正如您所说,它以md5格式存储在数据库中,然后您再次将其md5,因此实际上您正在执行以下操作:

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

会有用的


但是,请注意,您通常无法将md5哈希发送到邮件服务器并使其正常工作。然后服务器将对您发送的pasword文本进行自己的哈希/加密,密码的md5与实际密码有很大的不同。您需要发送真实的原始密码文本,而不是散列版本。

您似乎在对密码进行双重散列。正如您所说,它以md5格式存储在数据库中,然后您再次将其md5,因此实际上您正在执行以下操作:

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

会有用的


但是,请注意,您通常无法将md5哈希发送到邮件服务器并使其正常工作。然后服务器将对您发送的pasword文本进行自己的哈希/加密,密码的md5与实际密码有很大的不同。您需要发送真实的原始密码文本,而不是散列版本。

您说数据库中的密码是以MD5格式存储的。如果我再看看你现在做的流程是:

数据库(MD5中的密码)->PHP代码(密码转换为MD5)(访问SMTP)

在转换为MD5时,实际上是这样做的:MD5(MD5(“密码”))。如果我在终端中这样做,我会得到:

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

如果这不是您的情况,那么如果PHPMailer源代码已经转换为MD5,那么可以尝试在PHPMailer源代码中查看该密码方法。也许它也在类/对象中设置,以选择要使用的哈希方法?

您说数据库中的密码是以MD5格式存储的。如果我再看看你现在做的流程是:

数据库(MD5中的密码)->PHP代码(密码转换为MD5)(访问SMTP)

在转换为MD5时,实际上是这样做的:MD5(MD5(“密码”))。如果我在终端中这样做,我会得到:

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

如果这不是您的情况,那么如果PHPMailer源代码已经转换为MD5,那么可以尝试在PHPMailer源代码中查看该密码方法。可能是在类/对象中设置了选择要使用的哈希方法?

为什么您认为哈希密码会起作用?您的MTA文档是否明确指出,对密码进行简单的哈希运算就可以了?为什么您认为对密码进行哈希运算就可以了?你的MTA文档是否明确指出,简单的密码散列就可以了?这个想法实际上是通过执行md5($MAIL_PWD)来解压密码,但我认为这实际上是不可能的。我只是有点担心数据库中没有加密电子邮件密码。md5是单向散列。把它等同于奶牛>汉堡包。你不能把汉堡包变成一头牛。这个想法实际上是通过md5($MAIL_PWD)来解压密码,但我认为这实际上是不可能的。我只是有点担心数据库中没有加密电子邮件密码。md5是单向散列。把它等同于奶牛>汉堡包。你不能把汉堡包变成牛。