假设有人通过textarea
向MySQL写了一些机密信息。
我可以用PHP帮助以某种方式对此文本进行编码并将其放入MySQL。但是后来,当我需要显示这个文本时,我将不得不对其进行解码,人们会将其视为普通文本。
是否可以这样做,所以如果黑客窃取我的数据库,他将无法看到其他人写的内容?
答案 0 :(得分:1)
首先,设置加密密钥:
$key = 'yourpasswordhere';
$string = ' confidential information here '; // note the spaces
在数据库条目上加密:
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
var_dump($encrypted); // "ey7zu5zBqJB0rGtIn5UB1xG03efyCp+KSNR4/GAv14w="
稍后解密:
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
var_dump($decrypted); // " confidential information here "