# @cardano-foundation/cardano-verify-datasignature 中文文档

规范地址：https://npmcn.com/package/%40cardano-foundation/cardano-verify-datasignature/

版本：1\.0\.11
npm 元数据更新时间：2026-05-06T10:50:54.585Z
中文译文更新时间：2026-11-09T04:30:57.269Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40cardano-foundation/cardano-verify-datasignature
原文对照：https://npmcn.com/package/%40cardano-foundation/cardano-verify-datasignature/?lang=original

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

- 包体积（解压后）：2.6 MB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：5 个
- 首次发布：2022-12-12T17:29:54.610Z
- 最新版本发布：2022-12-21T08:23:21.099Z
- 近 30 天下载量：19253（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 0 个）

## 中文简介

轻量级打字程序库,用于验证浏览器和节点的 Cip30 数据签名

## 安装

```sh
npm install @cardano-foundation/cardano-verify-datasignature
```

也可以使用：`pnpm add @cardano-foundation/cardano-verify-datasignature`、`yarn add @cardano-foundation/cardano-verify-datasignature`、`bun add @cardano-foundation/cardano-verify-datasignature`

## README

# 卡多诺验证数据签名

![Release](https://github.com/cardano-foundation/cardano-verify-datasignature/actions/workflows/release.yml/badge.svg?branch=main) ![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)

一个轻量级打字程序库来验证 Cip30 数据签名.

## 开始

```zsh
npm i @cardano-foundation/cardano-verify-datasignature
```

## 核查

你需要一个钥匙和一个签名 来自 [cip30 数据签名](https://cips.cardano.org/cips/cip30/#apisigndataaddraddresspayloadbytespromisedatasignature)。 。 。 .

### 如何获得Cip30的数据签名?

创建 Cip30 数据签名有多种方法:

1.  确保您安装了 Cip30 兼容钱包( Nami, NuFi, Typhon Wallet, Flint, Gerowallet, Yoroi,...).
    
2.  选项A:打开浏览器控制台并复制并粘贴此功能:
    

```js
const signMessage = async (message, walletname) => {
  const api = await window.cardano[walletname].enable();
  const hexAddresses = await api.getRewardAddresses();
  const hexAddress = hexAddresses[0];
  let hexMessage = '';

  for (var i = 0, l = message.length; i < l; i++) {
    hexMessage += message.charCodeAt(i).toString(16);
  }

  try {
    const { signature, key } = await api.signData(hexAddress, hexMessage);
    console.log(signature, key);
  } catch (error) {
    console.warn(error);
  }
};
```

用法示例:

```js
signMessage('Hello World', 'yoroi').then((dataSignature) =>
  console.log(dataSignature)
);
```

3.  备选案文B:使用 [符号](https://github.com/cardano-foundation/cardano-connect-with-wallet/blob/main/src/hooks/useCardano.ts#L133) 函数 [卡通- 连接- wallet](https://github.com/cardano-foundation/cardano-connect-with-wallet) 库获取有效的密钥和签名.
    
4.  选项C:如果您想要使用 cli 来签名或验证数据,请检查 [卡达诺符号](https://github.com/gitmachtl/cardano-signer) 以 [千兆赫](https://github.com/gitmachtl)。 。 。 .
    

### "验证签名"是什么意思??

此函数使用公用密钥(COSE KEY)并检查其对应的私用密钥是否被用于签名(COSE Sign1)内的有效载荷(数据/消息)的签名.

此外,还可提供可选的纯文本电文,以检查纯文本与所签名电文是否平等.

另一个可选的参数是以(addr1/addr test1/stake1/stake test1)开头的可读(bech32)地址,以测试该地址是否属于用于签名消息的密钥.

```ts
const verifyDataSignature = require('@cardano-foundation/cardano-verify-datasignature');

const key =
  'a4010103272006215820b89526fd6bf4ba737c55ea90670d16a27f8de6cc1982349b3b676705a2f420c6';
const signature =
  '84582aa201276761646472657373581de118987c1612069d4080a0eb247820cb987fea81bddeaafdd41f996281a166686173686564f458264175677573746120416461204b696e672c20436f756e74657373206f66204c6f76656c61636558401712458b19f606b322982f6290c78529a235b56c0f1cec4f24b12a8660b40cd37f4c5440a465754089c462ed4b0d613bffaee3d1833516569fda4852f42a4a0f';
const message = 'Augusta Ada King, Countess of Lovelace';
const address = 'stake1uyvfslqkzgrf6syq5r4jg7pqewv8l65phh024lw5r7vk9qgznhyty';

console.log(verifyDataSignature(signature, key)); // true
console.log(verifyDataSignature(signature, key, message)); // true
console.log(verifyDataSignature(signature, key, message, address)); // true
console.log(
  verifyDataSignature(
    signature,
    key,
    message,
    'stake1_test1hweafkafrwf9ets85rs9gtk9qgzegwtg'
  )
); // false
console.log(
  verifyDataSignature(signature, key, 'Augusta Ada King, Countess of Lovelace!')
); // false
```

## 常见问题

### @cardano-foundation/cardano-verify-datasignature 是什么？

轻量级打字程序库,用于验证浏览器和节点的 Cip30 数据签名

### 如何安装 @cardano-foundation/cardano-verify-datasignature？

在项目目录运行 npm install @cardano-foundation/cardano-verify-datasignature，或使用 pnpm add / yarn add / bun add。

### @cardano-foundation/cardano-verify-datasignature 支持 TypeScript 吗？

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

### @cardano-foundation/cardano-verify-datasignature 支持 ESM 还是 CommonJS？

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

### @cardano-foundation/cardano-verify-datasignature 可以商用吗？

@cardano-foundation/cardano-verify-datasignature 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cardano-foundation/cardano-verify-datasignature 的下载量有多少？

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

### @cardano-foundation/cardano-verify-datasignature 还在维护吗？

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

