@arcjet/stable-hash

中文文档
1.15.0发布于 2026/10/29Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 32.8万

Arcjet 稳定散列工具

中文使用文档
文档目录14 节
  1. 这是什么?
  2. 我什么时候用这个?
  3. 安装
  4. 使用
  5. API 密码
  6. FieldHasher
  7. StringWriter
  8. bool(key, value)
  9. hash(…hashers)
  10. makeHasher(subtle)
  11. stringSliceOrdered(key, values)
  12. string(key, value)
  13. uint32(key, value)
  14. 许可证
Arcjet Logo

@arcjet/stable-hash

npm badge

弧喷 稳定的散列功能.

这是什么?

这是帮助我们创造稳定散列的内部用途. 并符合其他语言的相似内部代码. 这样做是为了确保各种语言之间的工作相同.

我什么时候用这个?

这是内部的Arcjet包件,不为公众使用而设计. 看我们的 开始吧 指南 如何使用Arcjet 在您的 应用.

安装

这套方案只是无害环境管理. 在 Node.js 用 npm 安装 :

npm install @arcjet/stable-hash

使用

import * as hasher from "@arcjet/stable-hash";

const id = await hasher.hash(
  hasher.string("type", "EMAIL"),
  hasher.uint32("version", 0),
  hasher.string("mode", "LIVE"),
  hasher.stringSliceOrdered("allow", []),
  hasher.stringSliceOrdered("deny", []),
);

console.log(id);
// => 49573b7df8d854c2cd5d8a755a4c03aff4014493a41b963490861a279ad675b2

API 密码

此软件包导出标识符 bool, (中文(简体) ), hash, (中文(简体) ), makeHasher, (中文(简体) ), stringSliceOrdered, (中文(简体) ), string,以及 uint32。 。 。 . 没有默认导出 .

此套件导出 类型脚本 类型 FieldHasher 财务报告和审定财务报表 StringWriter。 。 。 .

FieldHasher

此类型代表一个单字段的函数. 你得到一个 这些从 bool, (中文(简体) ), string, (中文(简体) ), stringSliceOrdered,以及 uint32。 。 。 .

类型
type FieldHasher = (data: StringWriter) => void;

StringWriter

这种类型代表着一个被收藏者写入数据的写作者.

字段
  • writeString(data: string): void 将数据写入散列

bool(key, value)

为布尔值创建字段散列.

参数
  • key (单位:千美元)string(中文(简体) ) ——字段名称
  • value (单位:千美元)boolean(中文(简体) ) 散列的布尔值
回返

字段缓存( A)FieldHasher) (中文(简体) ).

hash(…hashers)

Hashes 多个字段一起返回稳定的散列弦. 你通过 田间散居者 bool, (中文(简体) ), string, (中文(简体) ), stringSliceOrdered,以及 uint32。 。 。 .

参数
回返

A 类 Promise 决断于散列Promise<string>) (中文(简体) ).

makeHasher(subtle)

使用提供的内容创建新散列函数 SubtleCrypto 执行。 我们内部用这个支持不同的密码 跨运行时间的执行.

参数
  • subtle (单位:千美元)SubtleCryptoLike(中文(简体) ) a 包括: SubtleCrypto- 像执行
回返

散列函数( A)hash) (中文(简体) ).

stringSliceOrdered(key, values)

为命令的字符串创建字段散列.

参数
  • key (单位:千美元)string(中文(简体) ) ——字段名称
  • values (单位:千美元)ReadonlyArray<string>(中文(简体) ) ——散列的字符串数组
回返

字段缓存( A)FieldHasher) (中文(简体) ).

string(key, value)

为字符串值创建字段散列.

参数
  • key (单位:千美元)string(中文(简体) ) ——字段名称
  • value (单位:千美元)string(中文(简体) ) ——散列的字符串值
回返

字段缓存( A)FieldHasher) (中文(简体) ).

uint32(key, value)

为无符号的32位整数创建字段散列.

参数
  • key (单位:千美元)string(中文(简体) ) ——字段名称
  • value (单位:千美元)number(中文(简体) ) - 散列的整数值
回返

字段缓存( A)FieldHasher) (中文(简体) ).

许可证

Apache 许可证,2.0版本 © Arcjet实验室股份有限公司.

基于 feross/buffer 特许使用 麻省理工学院 Feross Aboukhadijeh和撰稿人. 我们的工作选择了它内部的六分编码逻辑 适应我们的使用.

版本与发布记录

@arcjet/stable-hash 共发布 38 个版本,首次发布于 2025/05/07;过去 12 个月发布了 30 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.15.0latest2026/10/298 天前
1.14.12026/10/0730 天前
1.14.02026/10/021 个月前
1.13.02026/09/171 个月前
1.12.02026/09/091 个月前
1.11.02026/08/272 个月前

其他发布通道:rc → 1.10.0-rc.1。

关于 @arcjet/stable-hash 的常见问题

@arcjet/stable-hash 是什么?

Arcjet 稳定散列工具

如何安装 @arcjet/stable-hash?

在项目目录运行 npm install @arcjet/stable-hash,或使用 pnpm add / yarn add / bun add。

@arcjet/stable-hash 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@arcjet/stable-hash 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arcjet/stable-hash 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.21.0 <23 || >=24.5.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@arcjet/stable-hash 可以商用吗?

@arcjet/stable-hash 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arcjet/stable-hash 的下载量有多少?

根据 npm 官方下载统计,@arcjet/stable-hash 在 2026/10/07 – 2026/11/05 这 30 天内被下载 328,218 次,日均约 10,941 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arcjet/stable-hash 还在维护吗?

最新版本 1.15.0 发布于 2026/10/29(8 天前);至今共发布 38 个版本,其中过去 12 个月发布了 30 个;首次发布于 2025/05/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。