小编Dan*_*iel的帖子

在nodejs中解密.Net cookie

我在.Net中创建了一个加密的cookie,我试图在nodejs中解密它的内容.但是nodejs不断抛出异常"TypeError:DecipherFinal fail"

在.Net中,我使用密钥的AES加密方法

932D86BB1448EEAA423F38495A2290746D81C27E55D1DC264279537006D6F4CC.

我的web.config文件包含以下行

<machineKey validationKey="A5326FFC9D3B74527AECE124D0B7BE5D85D58AFB12AAB3D76319B27EE57608A5A7BCAB5E34C7F1305ECE5AC78DB1FFEC0A9435C316884AB4C83D2008B533CFD9" 
decryptionKey="932D86BB1448EEAA423F38495A2290746D81C27E55D1DC264279537006D6F4CC" 
validation="SHA1" decryption="AES"  />
Run Code Online (Sandbox Code Playgroud)

在.Net中生成我的cookie的代码如下所示:

var ticket = new FormsAuthenticationTicket(0, "test", DateTime.Now, DateTime.Now.AddYears(1), true, "test");
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie(cookieName, encryptedTicket));
Run Code Online (Sandbox Code Playgroud)

解密cookie的nodejs代码是

var crypto = require('crypto');
var logger = require('winston');
var deckey = "932D86BB1448EEAA423F38495A2290746D81C27E55D1DC264279537006D6F4CC";

function hex2a(hex) {
  var str = '';
  for (var i = 0; i < hex.length; i += 2)
    str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
  return str;
}

function decrypt(cookie) {          
  var ivc = cookie, iv, cipherText, ivSize = 16, …
Run Code Online (Sandbox Code Playgroud)

.net cryptography aes node.js

5
推荐指数
1
解决办法
1157
查看次数

标签 统计

.net ×1

aes ×1

cryptography ×1

node.js ×1