1

我有以下加密代码:

function encryptData($value){ 
   $key = "7685647tfyr65413285746352413sgfh"; 
   $text = $value; 
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); 
   return $crypttext; 
}

echo 'Encrpt: ' . encryptData('This is just a test');

输出为:Encrpt: yUB�F3�*ľ�G-�ۅd�8�f�_�X/O

我将把它放到一个 mySQL 数据库中,但不确定它是否会接受那些奇怪的字符?

我这样做正确吗?

4

1 回答 1

1

是的,你做对了,但是输出是一个二进制值。为了省钱,最好通过以下方式将其编码为“常规”字符串

$encrypted_base64 = base64_encode($crypttext);

只记得在解码之前做相反的事情;

$crypttext = base64_decode($encrypted_base64);
于 2013-04-13T20:19:27.737 回答