データベースに保存したデータを復号化しようとしています。
誰かが私がここで間違っていることを教えてもらえますか?
渡したすべての値を確認して再確認しましたが、暗号化に使用した値と同じように見えます。
また、間違ったキーを渡すと出力が生成されますが、正しいキーを渡すと空の文字列が返されます。
そして面白いことに、Firebugはそれを1つとして表示しますが、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');