我正在使用 PEAR::Mail 向我们的客户发送大量电子邮件。我希望能够使用不同的 SMTP 帐户发送这些电子邮件(因为不同的邮件类型)。我们有大约 6 到 7 个帐户,未来可能还会更多。他们每个人都有不同的密码,我们希望能够将这些密码存储在数据库中,这样它就不会被硬编码,因此您可以使用管理员面板更轻松地添加它们。
我知道我想使用加密来存储密码,但这里不能选择 imo 散列。我希望能够读取这些密码,而不仅仅是比较哈希值。
我想通过在数据库中存储加密密码来做到这一点,但使用某种算法对其进行加密。这就是我有问题的地方——我对此知之甚少。我附上了我的加密测试代码,但我希望您对我应该如何改进它提出意见:
if (!function_exists('hex2bin')) {
function hex2bin($data) {
$len = strlen($data);
return pack('H' . $len, $data);
}
}
$key = $_GET['key'];
$text = $_GET['text'];
$encr = $_GET['encr'];
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
if ($text != null) {
echo bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
}
if ($encr != null) {
echo mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, hex2bin($encr), MCRYPT_MODE_ECB);
}