Node.js Crypto ライブラリと、それを自分の状況で適切に使用する方法を理解しようとしています。
私の目標は:
16 進文字列 3132333435363738313233343536373831323334353637383132333435363738 のキー
16 進文字列のテキスト 46303030303030303030303030303030
16 進文字列の暗号化テキスト 70ab7387a6a94098510bf0a6d972aabe
AES 256 の AC 実装とhttp://www.hanewin.net/encrypt/aes/aes-test.htmの Web サイトでこれをテストしています。
これは私が今までしなければならないことです。私が期待するようには機能していません。私の最善の推測は、暗号関数の入力と出力の型が正しくないということです。16進数を使用すると、v8エラーで失敗する唯一の機能はutf8です。それを機能させるために何を変換または変更する必要があるかについてのアイデア。
var keytext = "3132333435363738313233343536373831323334353637383132333435363738";
var key = new Buffer(keytext, 'hex');
var crypto = require("crypto")
var cipher = crypto.createCipher('aes-256-cbc',key,'hex');
var decipher = crypto.createDecipher('aes-256-cbc',key,'hex');
var text = "46303030303030303030303030303030";
var buff = new Buffer(text, 'hex');
console.log(buff)
var crypted = cipher.update(buff,'hex','hex')
この例の暗号化された出力は 8cfdcda0a4ea07795945541e4d8c7e35 であり、これは私が期待するものではありません。