使用 phpMailer 设置 md5 密码

use*_*652 1 php

我使用以下代码...

      $mail = new PHPMailer();  
      $mail->IsSMTP(); // send via SMTP
      $mail->SMTPAuth = true; // turn on SMTP authentication
      $mail->Username = $USR_EMAIL; // SMTP username
      $mail->Password = $MAIL_PWD; // SMTP password
Run Code Online (Sandbox Code Playgroud)

我想问一些简单的问题..有没有办法将数据库中以md5格式保存的密码传递给phpMailer?phpMailer 是否支持任何其他类型的散列?是否有支持散列密码的发送电子邮件 php 脚本?我很害怕我将在任何地方存储电子邮件密码而没有某种加密的想法..

小智 5

您必须将普通密码发送到 SMTP。散列函数是单向的,它们只是“混淆”输入,因此 SMTP 无法使用它来验证您的身份。

您可以对密码(可能是 AES)进行加密,然后存储密文和秘密(可能作为 env. 变量),并将解码后的通行证传递给邮件程序。

例子:

<?php
$secret_key = 'supersecret key';
$password = 'somepass';

// encrypt
// calculate cipher, and store somewhere
$cipher = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $password, MCRYPT_MODE_ECB);

// use the cipher
$mail->Username = $USR_EMAIL; // SMTP username
$mail->Password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $cipher, MCRYPT_MODE_ECB); // SMTP password
?>
Run Code Online (Sandbox Code Playgroud)