我正在尝试解密存储在数据库中的一些数据。
有人可以告诉我我在这里做错了什么吗?
我已经检查并重新检查了我传入的所有值,并且似乎与我用于加密的值相同。
此外,每当我传入不正确的键时,它确实会产生输出,但每当我传递正确的键时,它都会返回一个空字符串。
有趣的是,尽管萤火虫将其显示为空字符串,但 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');