我正在尝试解密我存储在数据库中的一些数据。
有人可以告诉我这里我做错了什么吗?
我检查并重新检查了我传入的所有值,看起来与我用于加密的值相同。
每当我传入一个不正确的键时,它确实产生输出,但每当我传递右键时它返回一个空字符串。
有趣的是,虽然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');
答案 0 :(得分:0)
“您确定没有对空字符串运行加密吗?” -AtkinsSJ
你是男人!我的jquery代码中有错字,实际上在加密之前读取了一个空字符串!如果您愿意,请提供答案,这样我就可以接受您的代表!干杯