使用node.js解码Rijndael

时间:2014-04-18 13:11:05

标签: javascript node.js cryptography aes rijndael

我必须解码一个rijndael 128字符串

该字符串可以成功使用此在线工具http://www.tools4noobs.com/online_tools/decrypt/并带有以下参数:

  • Algorythm rijndael 128
  • 模式:CBC
  • 使用base64
  • 解码输出

我必须使用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

1 个答案:

答案 0 :(得分:1)

IV的大小为32个字符(可能用作32个字节)。 AES 始终使用128位块大小,而CBC的IV始终是单个块的大小。所以你有16个字符太多了。