gpt4 book ai didi

javascript - node.js 改变串联?

转载 作者:搜寻专家 更新时间:2023-11-01 00:04:19 26 4
gpt4 key购买 nike

我正在尝试调试其他程序员留给我维护的一些代码。我刚刚尝试从 node.js 5 升级到 node.js 8,我的数据库查询是针对一些请求返回的,但出现 key 未找到错误

我们正在为数据库使用 couchbase,并且我们的文档 key 被“加密”以确保安全。所以我们可能有一个以“User_myemail@gmail.com”开头的 key ,但我们使用以下方法对其进行加密:

function _GetScrambledKey(dbKey)
{
//select encryption key based on db key content
var eKeyIndex = CalculateEncryptionKeyIndex(dbKey, eKeys.length);
var sha = CalculateSHA512(dbKey + eKeyIndex);
return sha;
}

function CalculateEncryptionKeyIndex(str, max)
{
var hashBuf = CalculateSHA1(str);
var count = 0;
for (var i = 0; i < hashBuf.length; i++)
{
count += hashBuf[i];
count = count % max;
}
return count;
}

然后我们使用

在 couchbase 中查询文档
cb.get("ECB_"+encryptedKey, opts, callback);

在 node5 中这有效,但在 node8 中我们得到一些文档返回正常而其他返回丢失。我将 "ECB_"+encryptedKey 作为一个 int 数组输出,结果让我更加困惑。它们在 node5 到 node8 上不同,但仅在数组中间有一个字符。

在两个版本上将 encryptedKey 作为 int 数组输出表明了这一点

188,106,14,227,211,70,94,97,63,130,78,246,155,65,6,148,62,215,47,230,211,109,35,99,21,60,178,74,195,13,​​233,253,187,142,213,213,104,58,168,60,225,148,25,101,155,91,122,77, 2,99,102,235,26,71,157,99,6,47,162,152,58,181,21,175

然后以同样的方式输出拼接后的字符串,结果略有不同

这是node8的输出Node8 键:69,67,66,95,65533,106,14,65533,65533,70,94,97,63,65533,78,65533,65533,65,6,65533,62,65533, 47,65533,65533,109,35,99,21,60,65533,74,65533,13,65533,65533,65533,65533,65533,65533,104,58,65533,60,65533,25,101,65533, 91,122,77,2,99,102,65533,26,71,65533,99,6,47,65533,65533,58,65533,21,65533

这是 node5 的输出Node5 键:69,67,66,95,65533,106,14,65533,65533,70,94,97,63,65533,78,65533,65533,65,6,65533,62,65533, 47,65533,65533,109,35,99,21,60,65533,74,65533,13,65533,65533,65533,65533,65533,65533,104,58,65533,60,65533,65533,25,101, 65533,91,122,77,2,99,102,65533,26,71,65533,99,6,47,65533,65533,58,65533,21,65533

我必须通过 diff 工具运行它才能看到差异 enter image description here将其与原始的预追加数组进行比较,看起来 225 刚刚被删除到 node8 中。 225重要吗?除非它是一个错误,否则我无法理解这怎么可能。有人有什么想法吗?

最佳答案

看起来这是 v8 5.5 中的更改 https://github.com/nodejs/node/issues/21278

关于javascript - node.js 改变串联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49555246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com