# @exodus/crypto 中文文档

规范地址：https://npmcn.com/package/%40exodus/crypto/

版本：1\.0\.0-rc\.34
npm 元数据更新时间：2025-12-03T18:16:03.969Z
中文译文更新时间：2026-11-14T03:50:49.823Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：106 kB，73 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^20\.19\.0 \|\| \>=22\.13\.0
- 运行依赖：5 个
- 首次发布：2022-05-31T17:34:53.780Z
- 最新版本发布：2025-12-03T18:16:02.543Z
- 近 30 天下载量：56083（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 3 个）

## 中文简介

可再使用的加密原始文件,用于浏览器/Node.js/Electron/React Industrial

## 安装

```sh
npm install @exodus/crypto
```

也可以使用：`pnpm add @exodus/crypto`、`yarn add @exodus/crypto`、`bun add @exodus/crypto`

## README

# `@exodus/crypto`

可再使用的加密原始文件,用于浏览器/Node.js/Electron/React Industrial

对于平台未执行的散列,需要 `@noble/hashes` 依赖性

## 关于反应原住民的注释

-   在原始反应中, 使用随机性的方法预期 `globalThis.crypto.getRandomValues` 工作的时候. 这可以多填充 `require('react-native-get-random-values')`。 。 。 .
    
-   `Buffer` 应进行多填充(全球或通过捆绑).
    

## 常规 API

### `randomBytes(size)`

```js
import { randomBytes } from '@exodus/crypto/randomBytes'
```

回返a `Buffer` 长度实例 `size` 从CSPRNG中填入.

在非节点.js环境中,需要多填充 `Buffer`。 。 。 .

### `randomUUID()`

```js
import { randomUUID } from '@exodus/crypto/randomUUID'
```

返回由 CSPRNG 填充的随机UUID(版本4,变体1).

这包含了122位随机性.

兼容 [Crypto.randomUID () (中文(简体) )](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)。 。 。 .

### `await hash(type, arg[, form])`

```js
import { hash } from '@exodus/crypto/hash'
```

哈谢斯 `arg` 使用指定的散列 `type`。 。 。 .

返回编码为 `form` (例如:. `'hex'`或作为 `Buffer` 实例 `form` 未指定.

例如:

```console
> await hash('sha256', 'abc', 'hex')
'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'
> await hash('sha256', Buffer.from('abc'), 'hex')
'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'
> await hash('sha256', new Uint8Array([97, 98, 99]), 'hex')
'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'
await hash('sha256', Buffer.from('abc'))
Buffer(32) [186, 120, 22, 191, 143, 1, 207, 234, 65, 65, 64, 222, 93, 174, 34, 35, 176, 3, 97, 163, 150, 23, 122, 156, 180, 16, 255, 97, 242, 0, 21, 173]
```

### `await hmac(type, secret, arg[, form])`

```js
import { hmac } from '@exodus/crypto/hmac'
```

HMAC的执行,使用类似于 `hash()`。 。 。 .

空 `secret` 不支持数值.

## 常见问题

### @exodus/crypto 是什么？

可再使用的加密原始文件,用于浏览器/Node\.js/Electron/React Industrial

### 如何安装 @exodus/crypto？

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

### @exodus/crypto 支持 TypeScript 吗？

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

### @exodus/crypto 支持 ESM 还是 CommonJS？

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

### @exodus/crypto 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^20\.19\.0 \|\| \>=22\.13\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @exodus/crypto 可以商用吗？

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

### @exodus/crypto 的下载量有多少？

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

### @exodus/crypto 还在维护吗？

最新版本 1\.0\.0-rc\.34 发布于 2025/12/04（11 个月前）；至今共发布 35 个版本，其中过去 12 个月发布了 3 个；首次发布于 2022/06/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

