其中一个项目要求我加密数据库连接字符串(用户名和密码)。
通常我使用.htaccess限制用户从网络访问。 但是这个项目要我存储userid&密码不是明文。
答案 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)
考虑使用密钥库将凭据存储在任何云服务提供商中