2012-05-30 159 views
1

我试图在PHP中使用这个加密系统。AES-256加密,PHP到MySQL

它附带下载的代码。

$salt = 'nala321'; 
$password = 'Alan'; 
include('./crypt/Crypt/AES.php'); 
$aes = new Crypt_AES(); 
$aes->setKey('abcdefghijklmn'); 

$size = 10 * 1024; 

***EDIT*** 
$plaintext = $password.$salt; 
***EDIT*** 

for ($i = 0; $i < $size; $i++) { 
    $plaintext.= 'a'; 
} 
$enc = $aes->encrypt($plaintext); 
echo $enc; 

这会导致很长的输出。我如何去存储这个到MySQL? 我看不同的想法说做

编辑

它返回字符这样

¸ÂØwÕ·›óöŽfjËëªû ÒÚCÂF I3T{öËY_Œ:4$¯Ÿ´ 

编辑

VARCHAR(16) CHARSET ascii COLLATE ascii_bin 

这是一个md5加密密码。我不确定是否应该放大尺寸为

$size = (16*16)-1; // for 255 limit on varchar 

感谢您的评论!

+1

你应该真的* *散列密码,而不是对其进行加密... – eggyal

+0

和盐他们。 – 2012-05-30 00:16:51

+0

这是为了这个问题。我做盐。 – AlanPHP

回答

1

我完全拿出了for循环。

将密码存储为只是一个varchar(30),它工作得很好。

最终的代码看起来像这样

$password = 'Alan'; 
include('./crypt/Crypt/AES.php'); 
$aes = new Crypt_AES(); 
$aes->setKey('abcdefghijklmn'); 
$enc = $aes->encrypt($plaintext); 
echo $enc; 
+0

不错,现在接受你自己的答案一段时间后 –