我有以下加密代码:

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-f 8-f-X/O
我将把它放到一个mySQL数据库中,但不确定它是否会接受这些奇怪的字符类型?
我这样做对吗?

最佳答案

是的,您做得很正确,但是输出是一个二进制值。为了节省,最好通过

$encrypted_base64 = base64_encode($crypttext);

只要记住在解码之前做相反的事情;
$crypttext = base64_decode($encrypted_base64);

关于php - PHP AES 256加密奇怪的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15992443/

10-13 00:05