# @bitgo/blake2b 中文文档

规范地址：https://npmcn.com/package/%40bitgo/blake2b/

版本：3\.2\.4
npm 元数据更新时间：2026-03-09T04:23:35.094Z
中文译文更新时间：2026-11-08T04:21:55.588Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bitgo/blake2b
原文对照：https://npmcn.com/package/%40bitgo/blake2b/?lang=original
项目主页：https://github.com/emilbayes/blake2b#readme
源码仓库：https://github.com/BitGo/BitGoJS

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：307 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2021-04-12T20:15:30.155Z
- 最新版本发布：2023-08-04T16:04:07.076Z
- 近 30 天下载量：403400（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：17（近 12 个月 0 个）

## 中文简介

纯 JavaScript 中的 Blake2b( 64- bit 版本)

## 安装

```sh
npm install @bitgo/blake2b
```

也可以使用：`pnpm add @bitgo/blake2b`、`yarn add @bitgo/blake2b`、`bun add @bitgo/blake2b`

## README

# `@bitgo/blake2b`

[![Build Status](https://travis-ci.org/emilbayes/blake2b.svg?branch=master)](https://travis-ci.org/emilbayes/blake2b)

> 纯 JavaScript 中的 Blake2b( 64- bit 版本)

此模块基于 @ dcposch [b. 实施《布拉克2》b](https://github.com/dcposch/blakejs),经过一些修改:

-   这个模块需要您在 `out` 缓冲,保存分配
-   此模块允许您设置 `salt` 财务报告和审定财务报表 `personal` 参数
-   此模块导出 libsodium 样式参数的常数
-   使用 WASM 版本( 在支持的情况下) 进行大规模性能提升

所有功劳都归于@dcposch ,因为做了艰苦的工作 移植 从 C 到 JavaScript 执行 .

## 使用量

```js
var blake2b = require('@bitgo/blake2b');

var output = new Uint8Array(64);
var input = Buffer.from('hello world');

console.log('hash:', blake2b(output.length).update(input).digest('hex'));
```

## API 密码

### `var hash = blake2b(outLength, [key], [salt], [personal], [noAssert = false])`

创建新散列实例, 可选择使用 `key`, (中文(简体) ), `salt` 财务报告和审定财务报表 `personal`设置旁通输入断言 `noAssert` 改为 `true`。 。 。 .

所有参数必须是 `Uint8Array`, (中文(简体) ), `Buffer` 或具有兼容性的另一个对象 API (英语). 所有参数还必须满足下列限制,或 `AssertionError` 将被抛出(除非 `noAssert = true`:

-   `outLength` 必须在以下常数定义的字节范围内.
-   `key` 是可选的,但必须在常数定义的字节范围内 如果给出,则在下文。 此值必须保密,并可用于创建 前缀-MAC.
-   `salt` 是可选的,但必须准确 `SALTBYTES`,如果给出。 你用得着 此参数为每个用户 ID,或本地版本方案的一种。 这个 值不需要保密.
-   `personal` 是可选的,但必须准确 `PERSONALBYTES`,如果给出。 你们可以 使用此参数作为类app id,或全局版本方案. 这个 值不需要保密.

### `var hash = hash.update(input)`

以新方式更新散列 `input`后调用此方法 `.digest` 将投出 错误.

### `var out = hash.digest(out)`

完成散列并将摘要写给 `out`。 。 。 . `out` 必须完全平等 改为 `outLength` 输入 `blake2b` 方法.

也可以通过 `hex` 将散列作为十六进制字符串或没有参数 将散列带回新的Uint8箭头.

### 常数

-   `blake2b.BYTES_MIN` 最小长度 `out`
-   `blake2b.BYTES_MAX` 最长长度 `out`
-   `blake2b.BYTES` 建议的默认长度 `out`
-   `blake2b.KEYBYTES_MIN` 最小长度 `key`
-   `blake2b.KEYBYTES_MAX` 最长长度 `key`
-   `blake2b.KEYBYTES` 建议的默认长度 `key`
-   `blake2b.SALTBYTES` 所需长度 `salt`
-   `blake2b.PERSONALBYTES` 所需长度 `personal`

## 安装

```sh
npm install @bitgo/blake2b
```

## 测试向量

此寄存器包括测试向量 `{outlen, out, input, key, salt, personal}` 测试符合性的对象 违反《公约》和其他规定:

-   行数 [2 - 257 (中文(简体) )](https://npmcn.com/package/%40bitgo/blake2b/test-vectors.json#L2-L257) 没有钥匙的散心测试 [BLAKE2 测试向量](https://github.com/BLAKE2/BLAKE2/blob/5cbb39c9ef8007f0b63723e3aea06cd0887e36ad/testvectors/blake2-kat.json)
-   行数 [258 - 513 (中文(简体) )](https://npmcn.com/package/%40bitgo/blake2b/test-vectors.json#L258-L513) 是用钥匙散开的测试,取自 [BLAKE2 测试向量](https://github.com/BLAKE2/BLAKE2/blob/5cbb39c9ef8007f0b63723e3aea06cd0887e36ad/testvectors/blake2-kat.json)
-   行数 [514-577号](https://npmcn.com/package/%40bitgo/blake2b/test-vectors.json#L514-L577) 这些试验是用钥匙、盐和个性化来进行散心试验的 [锂测试](https://github.com/jedisct1/libsodium/blob/3a9c4c38f7dbe671d91dcfa267c919734b4923df/test/default/generichash3.c)

## 许可证

[公务员制度委员会](https://npmcn.com/package/%40bitgo/blake2b/LICENSE)

## 常见问题

### @bitgo/blake2b 是什么？

纯 JavaScript 中的 Blake2b\( 64- bit 版本\)

### 如何安装 @bitgo/blake2b？

在项目目录运行 npm install @bitgo/blake2b，或使用 pnpm add / yarn add / bun add。

### @bitgo/blake2b 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bitgo\_\_blake2b 是否存在。

### @bitgo/blake2b 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @bitgo/blake2b 可以商用吗？

@bitgo/blake2b 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bitgo/blake2b 的下载量有多少？

根据 npm 官方下载统计，@bitgo/blake2b 在 2026/10/08 – 2026/11/06 这 30 天内被下载 403,400 次，日均约 13,447 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bitgo/blake2b 还在维护吗？

最新版本 3\.2\.4 发布于 2023/08/05（3 年前）；至今共发布 17 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/04/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

