是否可以对大文本进行编码和解码?

时间:2011-07-22 23:30:18

标签: php mysql

假设有人通过textarea向MySQL写了一些机密信息。

我可以用PHP帮助以某种方式对此文本进行编码并将其放入MySQL。但是后来,当我需要显示这个文本时,我将不得不对其进行解码,人们会将其视为普通文本。

是否可以这样做,所以如果黑客窃取我的数据库,他将无法看到其他人写的内容?

1 个答案:

答案 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 "