Node.jsは、16進数でエンコードされたAES128出力を復号化するときに、奇妙なことに間違った出力を表示します。
function decrypt_data( data, key, iv )
{
var dc = crypto.createDecipheriv( 'aes-128-cbc', hex_to_str(key), hex_to_str(iv) );
var res = dc.update( data, 'hex', 'utf8' );
res += dc.final( 'utf8' );
console.log(res);
return res;
}
この関数は完全に問題ないようです。すべてのテストに合格しています。しかし、実際のノードサーバーから呼び出すと、破損した出力が返されます。
メッセージの末尾は問題ありませんが、最初の32個のシンボルは完全にゴミです。このようなもの:
�8���ro�&����AMD Accelerated Parallel Processing" : [ "Cayman", "Cayman", "AMD Phenom(tm) II X2 555 Processor" ] }, "request" : "hello", "version" : 1 }
どの入力を使用しても、最初の32バイトの戻り値は常に間違っています。