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

在php中加密/保护数据库连接字符串,php,database,encryption,Php,Database,Encryption,其中一个项目要求我加密数据库连接字符串(用户名和密码) 通常我使用.htaccess来限制用户从web访问。 但是这个项目希望我不以明文形式存储用户ID和密码。如果您的服务器上有扩展,您可以使用 将加密的用户名和密码存储在web根目录之外的文件中,并使用mcrypt进行读/写 例如: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYP

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

通常我使用.htaccess来限制用户从web访问。
但是这个项目希望我不以明文形式存储用户ID和密码。

如果您的服务器上有扩展,您可以使用 将加密的用户名和密码存储在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允许您获取原始字符串。

这是不可能的

例如,如果使用mcrypt对MySQL密码进行加密,解密该MySQL密码的唯一方法是使用您的秘密mcrypt密码,很明显,该密码也将存储在一些PHP脚本或服务器上的其他地方

任何有权访问服务器或可以读取脚本的人都可以访问MySQL密码或用于解密MySQL密码的任何其他密码


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

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

请查看。我不会投票以重复的方式结束,因为它有一个稍微不同的焦点,但它应该完全回答你的问题。