将对象加密为JSON格式效果不佳

问题描述 投票:1回答:1

我尝试使用加密来加密数据(json格式),

这是我的代码:

const crypto = require('crypto');

let data = {
    aaa: "aaa",
    bbb: "bbb"};

let jsonData = JSON.stringify(data, null, 2);
 encrypt(jsonData);

function encrypt(data) {
    let hmac = crypto.createHmac('sha1', 'abc');
    console.log(data);
    hmac.update(data);
    let key = hmac.digest('hex');
    console.log(key);
}

log:

{
  "aaa": "aaa",
  "bbb": "bbb"
}
820c9d3d82a9a8fc1cc0352929ccccdfd945c5d0

[当我从日志中复制数据并将其粘贴到this site时,我得到了另一个签名:

enter image description here

enter image description here

怎么了?

node.js json encryption sha1 cryptojs
1个回答
0
投票

如果删除所有换行符和空格:

{"aaa":"aaa","bbb":"bbb"}

该网站将计算以下项的哈希:

61b23e04f44fd7dcfcfe9acf5fcb9381179538f7

与将第三个参数设置为0时在程序中得到的结果相同。

let jsonData = JSON.stringify(data, null, 0);

所以问题是哈希函数的输入不同。

© www.soinside.com 2019 - 2024. All rights reserved.