正确的解密返回空字符串

时间:2012-09-05 22:48:29

标签: php encryption mcrypt

我正在尝试解密我存储在数据库中的一些数据。

有人可以告诉我这里我做错了什么吗?

我检查并重新检查了我传入的所有值,看起来与我用于加密的值相同。

每当我传入一个不正确的键时,它确实产生输出,但每当我传递右键时它返回一个空字符串。

有趣的是,虽然firebug将其显示为一个字符串,但javascript并不会将其视为空字符串。

我的加密代码:

$iv = hash('sha256',$_POST['ben'].$_POST['assetName'],true);
$secretKeyFromAnswer = hash('sha256',$_POST['answer'],true);
$encedUsername = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secretKeyFromAnswer , $_POST['username'], MCRYPT_MODE_CBC, $iv));

我的解密代码:

$hashKey = hash('sha256',$_POST['key'],true);
$iv = hash('sha256',$_POST['ben'].$_POST['assetName'],true);
$theData = base64_decode($userToDec);
$decUsername = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $hashKey, $theData , MCRYPT_MODE_CBC, $iv),'\0');

1 个答案:

答案 0 :(得分:0)

“您确定没有对空字符串运行加密吗?” -AtkinsSJ

  

你是男人!我的jquery代码中有错字,实际上在加密之前读取了一个空字符串!如果您愿意,请提供答案,这样我就可以接受您的代表!干杯