什么是 Nodejs 加密的最短哈希值

What is the shortest hash with Nodejs crypto

nodejs 加密模块中最短的字符串哈希算法是什么?有没有类似于 crc32 的东西,它产生 8 个字符的字符串,但不幸的是 crypto 本身不支持(我知道有外部模块,但我仅限于内置 crypto)。哈希冲突概率对我的应用程序(缓存突发)并不重要。

您可以使用像 shake256 这样的 XOF 散列函数,它支持 outputLength 选项(以字节为单位):

const crypto = require("crypto");

function createHash(data, len) {
    return crypto.createHash("shake256", { outputLength: len })
      .update(data)
      .digest("hex");
}

console.log(createHash("foo", 2))
// 1af9
console.log(createHash("foo", 8))
// 1af97f7818a28edf