1

デモアプリを介して as3crypto でテキストを暗号化しようとしました。

現在、暗号化されたテキストをphp経由で復号化しようとしていますが、テキストが適切に復号化されていないようです。PHP経由で適切に復号化する方法を知っている人はいますか? または私はそれを間違っていますか?教えてください...

シナリオは次のとおりです。

  1. これをhttp://crypto.hurlant.com/demo/で暗号化します。

    暗号化: AES

    モード: CBC

    パディング:なし

    キー: 11918f8bcd112e92744125008722050c

    テキスト: Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ut massa nec purus laoreet posuere quis vitae tortor.

    ベクトルの初期化: 空白のままにします

  2. 暗号化を押します。base64 を選択し、暗号文をコピーします。

  3. これらのコードを含む php スクリプトを作成して実行します。

    $cipher = MCRYPT_RIJNDAEL_128;

    $mode = MCRYPT_MODE_CBC;

    $key = "11918f8bcd112e92744125008722050c";

    $cipher = "暗号テキストをここに配置...";

    $data = base64_decode($cipher);

    echo mcrypt_decrypt($cipher, $key, $data, $mode);

4

2 に答える 2

1

問題はおそらくあなたの鍵にあります。as3crypto に 16 進数の文字列を入力すると、それが何をするのかがわかり、mcrypt_decrypt各文字が 16 進数値 (a = 10) ではなく、基礎となる ASCII 値 (a = 97 など) として解釈されます。hex2binメソッドを使用して 16 進文字列をバイト文字列に変換すると、復号化はおそらく正常に機能するはずです。

また、as3crypto と php の間のデフォルト IV (初期化ベクトル) の異なる考え方に問題がある可能性があります。CBC モードを使用しているため、適切なセキュリティ プラクティスとして、IV を指定する必要があります。as3 で 16 進文字列を指定し、それを php.ini で変換する必要があるという、キーの場合と同様の潜在的な落とし穴にも注意してください。

于 2013-03-19T05:29:13.537 に答える