# @digitalcredentials/crypto-ld 中文文档

规范地址：https://npmcn.com/package/%40digitalcredentials/crypto-ld/

版本：7\.0\.6
npm 元数据更新时间：2026-09-30T17:46:12.797Z
中文译文更新时间：2026-11-12T08:57:05.924Z
软件包许可：BSD-3-Clause

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

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

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

- 包体积（解压后）：41 kB，14 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16
- 运行依赖：0 个
- 首次发布：2022-10-17T23:08:16.226Z
- 最新版本发布：2022-10-20T00:27:42.713Z
- 近 30 天下载量：4924（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作.

## 安装

```sh
npm install @digitalcredentials/crypto-ld
```

也可以使用：`pnpm add @digitalcredentials/crypto-ld`、`yarn add @digitalcredentials/crypto-ld`、`bun add @digitalcredentials/crypto-ld`

## README

# 链接数据的加密密钥对等库 _(crypto-ld) (简体中文)_

[![Build status](https://img.shields.io/github/workflow/status/digitalcredentials/crypto-ld/Node.js%20CI)](https://github.com/digitalcredentials/crypto-ld/actions?query=workflow%3A%22Node.js+CI%22) [![NPM Version](https://img.shields.io/npm/v/@digitalcredentials/crypto-ld.svg)](https://npm.im/@digitalcredentials/crypto-ld)

> 一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作.

## 目录

-   [背景情况](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-background)
-   [警卫](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-security)
-   [安装](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-install)
-   [使用量](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-usage)
-   [贡献](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-contribute)
-   [商业支助](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-commercial-support)
-   [许可证](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-license)

## 背景情况

另见(相关规格):

-   [链接数据加密成套登记](https://w3c-ccg.github.io/ld-cryptosuite-registry/)
-   [链接数据证明 1.0](https://w3c-ccg.github.io/ld-proofs/)

### 支持的密钥类型

此库提供一般链接数据加密密钥生成 函数,但不默认支持任何单个密钥类型.

要使用它,你必须 [安装单个驱动程序库](https://npmcn.com/package/%40digitalcredentials/crypto-ld/#readme-usage) 每个 密码密钥类型 。 目前支持以下图书馆.

| 类型 | 密码套件 | 图书馆 | 使用量 |
| --- | --- | --- | --- |
| `Ed25519` | **[Ed25519 核查Key 2020](https://w3c-ccg.github.io/lds-ed25519-2020/#ed25519verificationkey2020)** (建议), [Ed25519 核查Key2018](https://w3c-ccg.github.io/lds-ed25519-2018/#the-ed25519-key-format) (遗产) | **[`ed25519-verification-key-2020 >=1.0`](https://github.com/digitalcredentials/ed25519-verification-key-2020)** (建议), [`ed25519-verification-key-2018 >=2.0`](https://github.com/digitalbazaar/ed25519-verification-key-2018) (遗产) | 签署、加入、签署、签署、签署、签署 |
| `X25519/Curve25519` | X25519 关键协定Key2019 | [`x25519-key-agreement-key-2019 >=4.0`](https://github.com/digitalbazaar/x25519-key-agreement-key-2019) | [ECDH 人权委](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) 键协议, JWE/CWE 加密 [`minimal-cipher`](https://github.com/digitalcredentials/minimal-cipher) |
| `Secp256k1` | [Ecdsa Secp 256k1 核查 Key2019](https://w3c-ccg.github.io/ld-cryptosuite-registry/#secp256k1) | [`ecdsa-secp256k1-verification-key-2019`](https://github.com/digitalbazaar/ecdsa-secp256k1-verification-key-2019) | 签名, VCs, z Caps, DIDAuth, HD 钱包 |

### 选择密钥类型

数字签字 [`jsonld-signatures`](https://github.com/digitalcredentials/jsonld-signatures), (中文(简体) ), 使用 [`vc-js`](https://github.com/digitalcredentials/vc-js), (中文(简体) ), 授权能力,以及 DIDAuth 操作:

-   偏爱 **Ed25519 核查Key 2020** 键,默认情况下.
-   使用 **EcdsaSepc256k1 (英语)** 键,如果您的使用大小写需要的话(例如,如果 你正在开发一个基于比特币或伊特鲁姆的分类账,或者如果你 需要分级决定(HD)钱包功能.

对于加密操作的关键协议协议协议 :

-   使用 **曲线25519** 与 [`minimal-cipher`](https://github.com/digitalcredentials/minimal-cipher) 图书馆.

## 警卫

同大多数与安全和密码学有关的工具一样 您的系统将在很大程度上取决于您的设计决定 .

## 安装

-   需要14.0+节点.

在当地安装(用于开发):

```
git clone https://github.com/digitalcredentials/crypto-ld.git
cd crypto-ld
npm install
```

## 使用量

### 安装密钥类型的支持

要使用此库, 您需要导入并安装驱动程序 库,用于您将通过 `use()` 方法.

要使用一个或多个支持的套件库 :

```js
import {Ed25519VerificationKey2020} from '@digitalcredentials/ed25519-verification-key-2020';
import {X25519KeyAgreementKey2020} from '@digitalcredentials/x25519-key-agreement-key-2020';

import {CryptoLD} from '@digitalcredentials/crypto-ld';
const cryptoLd = new CryptoLD();

cryptoLd.use(Ed25519VerificationKey2020);
cryptoLd.use(X25519KeyAgreementKey2020);

const edKeyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});
```

### 生成新的公用/私用密钥对

要生成一个新的公/私密密钥配对 : `cryptoLd.generate(options)`数字 :

-   `{string} [type]` 需要套房名称.
-   `{string} [controller]` 可选控制器 URI 或 Did 初始化 生成了密钥。 (此会输入密钥 ID. )
-   `{string} [seed]` 可选的确定种子值( 只有部分种子支持) 关键类型,例如 `ed25519`从中生成密钥.

### 从存储导入一对密钥

从下列数据中创建公/私密密钥对实例: 存储,使用 `cryptoLd.from()`数字 :

```js
const serializedKeyPair = { ... };

const keyPair = await cryptoLd.from(serializedKeyPair);
```

注意,如果您试图创建 键对通过 `from()` 对于一个不支持的类型,会显示错误.

### 常见的单个密钥配对操作

整个行动范围将取决于关键类型。 这里有些常见的 所有关键类型支持的操作.

#### 只导出公钥

仅导出一对的公钥 - 使用 `export()`数字 :

```js
keyPair.export({publicKey: true});
// ->
{
  type: 'Ed25519VerificationKey2020',
  id: 'did:example:1234#z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3',
  controller: 'did:example:1234',
  publicKeyMultibase: 'zEYJrMxWigf9boyeJMTRN4Ern8DJMoCXaLK77pzQmxVjf'
}
```

#### 导出完整的公-私密密钥配对

要导出完整一对密钥, 包括私钥( 警告 : 这应该是 仔细考虑的操作,最好留给专用密钥管理系统:

```js
keyPair.export({publicKey: true, privateKey: true});
// ->
{
  type: 'Ed25519VerificationKey2020',
  id: 'did:example:1234#z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3',
  controller: 'did:example:1234',
  publicKeyMultibase: 'zEYJrMxWigf9boyeJMTRN4Ern8DJMoCXaLK77pzQmxVjf',
  privateKeyMultibase: 'z4E7Q4neNHwv3pXUNzUjzc6TTYspqn9Aw6vakpRKpbVrCzwKWD4hQDHnxuhfrTaMjnR8BTp9NeUvJiwJoSUM6xHAZ'
}
```

#### 生成和验证密钥指纹

要生成指纹 :

```js
keyPair.fingerprint();
// ->
'z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3'
```

为了验证指纹:

```js
keyPair.verifyFingerprint({
  fingerprint: 'z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3'
});
// ->
{ valid: true }
```

### 对签名相关密钥对的操作

对于与签字和核查有关的密钥配对(从 页:1 `LDVerifierKeyPair` ),必须支持另外两个操作:

#### 创建签名函数

为了执行加密签名,您需要创建 `sign` 函数,然后引用它.

```js
const keyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});

const {sign} = keyPair.signer();

const data = 'test data to sign';
const signatureValue = await sign({data});
```

#### 创建验证函数

为了验证密码签名,您需要创建 `verify` 函数,然后引用它(通过数据验证,和签名).

```js
const keyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});

const {verify} = keyPair.verifier();

const {valid} = await verify({data, signature});
```

## 贡献

见 [贡献文件](https://github.com/digitalbazaar/bedrock/blob/master/CONTRIBUTING.md)来啊!

公关接受.

请遵照 [标准读取](https://github.com/RichardLitt/standard-readme) 规格.

## 商业支助

该图书馆的商务支助可应下列请求提供: 数字集市: [支持@ digitalbazaar.com](mailto:support@digitalbazaar.com)

## 许可证

[新建 BSD 许可证( 3- clause)](https://npmcn.com/package/%40digitalcredentials/crypto-ld/LICENSE) 数字集市

## 常见问题

### @digitalcredentials/crypto-ld 是什么？

一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作\.

### 如何安装 @digitalcredentials/crypto-ld？

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

### @digitalcredentials/crypto-ld 支持 TypeScript 吗？

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

### @digitalcredentials/crypto-ld 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

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

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

### @digitalcredentials/crypto-ld 可以商用吗？

@digitalcredentials/crypto-ld 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### @digitalcredentials/crypto-ld 的下载量有多少？

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

### @digitalcredentials/crypto-ld 还在维护吗？

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

