2

データベースに保存したデータを復号化しようとしています。

誰かが私がここで間違っていることを教えてもらえますか?

渡したすべての値を確認して再確認しましたが、暗号化に使用した値と同じように見えます。

また、間違ったキーを渡すと出力が生成されますが、正しいキーを渡すと空の文字列が返されます。

そして面白いことに、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');
4

1 に答える 1

1

「空の文字列に対して暗号化を実行していませんか?」--アトキンスJ

あなたは男です!私のjqueryコードにタイプミスがあり、実際には暗号化する前に空の文字列を読んでいました. 必要に応じて答えを出してください。そうすれば、私が受け入れることができ、担当者を得ることができます! 乾杯

于 2018-10-02T13:26:12.383 に答える