I'm running into a weird problem with mcrypt and blowfish encryption. The problem is that the encrypted value is not always decryptable??? Which is a nightmare problem.
I'm using the following values to encrypt,decrypt in my test script:
Code: Select all
IV: 8c8NCvPtLlA=
KEYVAL: simp0lANDse3cur3Code: Select all
define("IV","8c8NCvPtLlA=");
define("KEYVAL","simp0lANDse3cur3");
for($i = 0; $i < 20; $i++){
$clear = md5(uniqid(rand(),1));
$crypt = base64_encode(encrypt(KEYVAL,trim($clear), base64_decode(IV)));
echo "clear: ".$clear."<br>";
echo "crypt: ".$crypt."<br>";
$clear = $crypt;
$clear = decrypt(KEYVAL,trim(base64_decode($clear)), base64_decode(IV));
echo "clear: ".$clear."<br>";
echo "<br>";
}Code: Select all
clear: f7911bfb78742d0ecc9c91526095f922
crypt: /kMQy/EinWFpeDiM+ipsfJba8FTh1XxJOjCIaL310xc=
clear: f7911bfb78742d0ecc9c91526095f922
clear: 3c5f9a28b0b4501b843cb678a1aa1cff
crypt: xeqejfC2CrlxWhR6Q/+pS6Ukupf9Q7J+oEhwznhyHX0=
clear: 3c5f9a28b0b4501b843cb678a1aa1cff
clear: 4b7a719f31083f215d8cf7aa537b5a9e
crypt: xZNkyZl9HKr9CexhKZbUua5CesVCO9nmsEFTxlwxFW0=
clear: 4b7a719f31083f215d8cf7aa537b5a9e
clear: 68f54b5db93a503d143cb8e078a6fb5a
crypt: 63a0LHg6iN/diocj1YiENPL3bzn85o7GWY7Ckgbqn1I=
clear: 68f54b5db93a503d143cb8e078a6fb5a
clear: 9438340b57d1192e946dc339ef163486
crypt: SLV0hR7BVWMsYxmf6w69wZh6LzWk3i6KU73buuwVwjI=
clear: 9438340b57d1192e946dc339ef163486
clear: 288f03bc63afe251cc4dd2219c59d1df
crypt: NnlyzXpHQtxjo1Myu0wxNqP7UQti/dmlQHeAQ8lQb5Q=
clear: 288f03bc63afe251cc4dd2219c59d1df
clear: 3e8859650f7a1df2d35311717091d1ab
crypt: C7+E2WcmRvrRlm7nMD8O+3CkPJig8fuDjcMJ2botD8w=
clear: \u20ac ø-äї\u0153Ð\u2021·\u2021\u017d· zbb0çïq ´Code: Select all
function make_iv(){
srand ((float) microtime() * 10000000);
return mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_BLOWFISH, MCRYPT_MODE_CBC), MCRYPT_RAND);
}
function encrypt($key, $data, $iv){
return mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_CBC, $iv);
}
function decrypt($key, $data, $iv){
return mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_CBC, $iv);
}This is a huge problem, and if anyone can help it would really be appreciated. The gravity of the issue is great to say the least.
Thanks!
hanji