我必须解码一个rijndael 128字符串
该字符串可以成功使用此在线工具http://www.tools4noobs.com/online_tools/decrypt/并带有以下参数:
我必须使用node.js和crypto模块解码它
这是我的代码
function Token(TokenBase64 )
{
var crypto = require('crypto');
this.TokenToCheck = new Buffer(TokenBase64,'base64').toString();
this.GameKey = 'xxxxxxxxxxxxxxxxx';
var cryptKey = crypto.createHash('sha256').update(this.GameKey).digest()
this.decipher = crypto.createDecipheriv('aes-128-cbc', cryptKey, '12345678901234561234567890123456');
var dec = this.decipher.update( this.TokenToCheck);
dec += this.decipher.final();
return dec;
}
module.exports = Token;
调用此代码时输出的错误是:
Error: DecipherInitIv error at new Decipheriv (crypto.js:360:17) at Object.Decipheriv (crypto.js:357:12) at new Token
答案 0 :(得分:1)
IV的大小为32个字符(可能用作32个字节)。 AES 始终使用128位块大小,而CBC的IV始终是单个块的大小。所以你有16个字符太多了。