出于内部原因,我需要在数据库中存储第三方帐户的密码,因此我无法真正使用哈希,因为我无法轻易地从中恢复密码。
有没有办法加密明文密码,以便潜在的黑客即使拥有mysql表也无法轻易检索密码,但我仍然可以解密它以查看其原始形式?
答案 0 :(得分:1)
解密密码不是最佳做法。但是,如果您的要求是而不是简单地使用字符串的任何加密或解密方法。
我最近使用了以下函数来加密或解密字符串。用于保护URL。您还可以使用此加密或解密功能在使用GET方法请求时保护URL。
<?php
define("ENCRYPTION_KEY", "ABCDEFGHIJKLabcdefghijklm!@#$%^&*");
$string = "Plain Text";
echo $encrypted = encrypt($string, ENCRYPTION_KEY);
echo "<br />";
echo $decrypted = decrypt($encrypted, ENCRYPTION_KEY);
// this function will return encrypted string
function encrypt($pure_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
// this function will return encrypted string
function decrypt($encrypted_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
?>
因此,为了您的目的,使用此加密函数将纯文本存储在数据库中 并使用其他功能检索它。