在php中加密/保护数据库连接字符串

时间:2011-03-04 08:51:23

标签: php database encryption

其中一个项目要求我加密数据库连接字符串(用户名和密码)。

通常我使用.htaccess限制用户从网络访问。 但是这个项目要我存储userid&密码不是明文。

3 个答案:

答案 0 :(得分:2)

这是不可能的。

如果您使用mcrypt加密MySQL密码,只有解密MySQL密码的方法是使用您的秘密mcrypt密码,这显然也会存储在某些PHP脚本或服务器上的其他位置。

无论谁有权访问服务器或可以阅读脚本,都可以访问MySQL密码或用于解密MySQL密码的任何其他密码。

如果您的项目要求您不以明文形式存储密码,请向项目经理询问此逻辑问题 - 如何解密密码以及如何存储密码以解密密码。

答案 1 :(得分:0)

如果您的服务器上有扩展程序,则可以使用mcrypt 将您的用户名和密码存储在Web根目录外的文件中,并使用mcrypt

进行读/写

例如:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = "myusername";
echo $text . "\n";

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo $crypttext . "\n";

当然,mcrypt_decrypt会让你获得原始字符串。

答案 2 :(得分:0)

考虑使用密钥库将凭据存储在任何云服务提供商中