forgeによるAES-CBC暗号化
909 ワード
公式サイトの例(cryptoDataハを自己補完)ランダムに生成された16ビットkeyとiv(補位用)
crypto-jsの結果と異なる場合は、公式サイトのoutputを試してみてください.toHexをgetBytesに変換してbase 64で符号化する.
keyとivが指定されたkeyがserver base 64のバイナリ符号化のために送信されたivが16でランダム文字列がserverに返信される場合
キーを16ビットbytesに変換し、ivに対応するencodeUtf 8操作を行えばよい
function encryptByForge() {
var key = forge.random.getBytesSync(16);
var iv = forge.random.getBytesSync(16);
var cipher = forge.cipher.createCipher('AES-CBC', key);
cipher.start({
iv: iv
});
cipher.update(forge.util.createBuffer(JSON.stringify(cryptoData)));
cipher.finish();
// outputs encrypted hex
return forge.util.encode64(cipher.output.getBytes());
}
crypto-jsの結果と異なる場合は、公式サイトのoutputを試してみてください.toHexをgetBytesに変換してbase 64で符号化する.
keyとivが指定されたkeyがserver base 64のバイナリ符号化のために送信されたivが16でランダム文字列がserverに返信される場合
const keyBytes = forge.util.createBuffer(forge.util.decode64(key), 'binary').getBytes(16);
const encodeIv = forge.util.encodeUtf8(iv);
キーを16ビットbytesに変換し、ivに対応するencodeUtf 8操作を行えばよい