Skip to content
Hunter Wu edited this page Jun 9, 2020 · 1 revision

Fixed IV

$data = "Hello World!";
$privateKey = md5('Hello World!');          // ed076287532e86365e841e92bfc50d8c
$iv = substr($privateKey, 0, 16);           // ed076287532e86365
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv);
echo base64_encode($iv);            //
echo base64_encode($encrypted);     // +2CmhIpgxooVp9/7Q0YB2A==
var key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5('Hello World!'));
var iv  = CryptoJS.enc.Utf8.parse('ed076287532e86365');
var data = '+2CmhIpgxooVp9/7Q0YB2A==';
CryptoJS.AES.decrypt(data, key, {iv: iv, padding:CryptoJS.pad.ZeroPadding}).toString(CryptoJS.enc.Utf8);

Random IV

$data = "Hello World!";
$privateKey = md5('Hello World!');          // ed076287532e86365e841e92bfc50d8c
$iv = random_bytes(16);
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv);
echo base64_encode($iv);            // cHKN155JLe9q+yDg2NOPow==
echo base64_encode($encrypted);     // q1OC7DfkCmqzw1Vwen+Y0Q==
var key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5('Hello World!'));
var iv  = CryptoJS.enc.Base64.parse('cHKN155JLe9q+yDg2NOPow==');
var data = 'q1OC7DfkCmqzw1Vwen+Y0Q==';
CryptoJS.AES.decrypt(data, key, {iv: iv, padding:CryptoJS.pad.ZeroPadding}).toString(CryptoJS.enc.Utf8);
Clone this wiki locally