# @anvilco/encryption 中文文档

规范地址：https://npmcn.com/package/%40anvilco/encryption/

版本：2\.0\.4
npm 元数据更新时间：2025-11-12T22:03:17.181Z
中文译文更新时间：2026-11-06T07:42:41.182Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：13.9 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2018-08-31T18:49:38.319Z
- 最新版本发布：2023-01-19T18:41:15.902Z
- 近 30 天下载量：4112（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 0 个）

## 中文简介

RSA 和 AES 加密助手

## 安装

```sh
npm install @anvilco/encryption
```

也可以使用：`pnpm add @anvilco/encryption`、`yarn add @anvilco/encryption`、`bun add @anvilco/encryption`

## README

# 馆内加密

这个图书馆是一个小包装 围绕节点 `crypto` 图书馆。 它为在AES和RSA中加密和破解任意有效载荷提供了方便方法.

为使用加密/解密Anvil的有效载荷,您可以从您的 [组织的设置页面](https://www.useanvil.com/docs/api/getting-started#encryption)。 。 。 .

![Horizontal Lockupblack](https://user-images.githubusercontent.com/293079/169453889-ae211c6c-7634-4ccd-8ca9-8970c2621b6f.png#gh-light-mode-only) ![Horizontal Lockup copywhite](https://user-images.githubusercontent.com/293079/169453892-895f637b-4633-4a14-b997-960c9e17579b.png#gh-dark-mode-only)

[安维尔](https://npmcn.com/package/%40anvilco/encryption/www.useanvil.com/developers) 为所有文件提供方便的API.

1.  [PDF 填补 API](https://www.useanvil.com/products/pdf-filling-api/) - 填写一个PDF模板,其中包含网络请求和结构化的JSON数据.
2.  [PDF 生成 API](https://www.useanvil.com/products/pdf-generation-api/) - 发送标记下来或HTML和Anvil会把它变成PDF.
3.  [Etch 带有 API 的 E 签名](https://www.useanvil.com/products/etch/) - 可自定义的、可嵌入的、带有API的电子签名平台,以控制签名过程的端到端.
4.  [工作流量(w/ API)](https://www.useanvil.com/products/workflows/) - Webforms + PDF + E- sign 带有强大的无码构建器. 轻松地收集结构化数据,生成PDF,并请求签名.

多了解一下安维尔 [Anvil 开发者页面](https://www.useanvil.com/developers)。 。 。 .

## 安装

```sh
yarn add @anvilco/encryption
```

那就用这个

```js
// For RSA functions
import { encryptRSA, decryptRSA } from '@anvilco/encryption'

// For AES functions
import { generateAESKey, encryptAES, decryptAES } from '@anvilco/encryption'

// Could grab the keys from file (or preferably from environment variables)
import fs from 'fs'
const privateKey = fs.readFileSync('path/to/privateKey.pem')
const publicKey = fs.readFileSync('path/to/publicKey.pem')


// RSA
const message = 'Super secret message'
const encryptedRSAMessage = encryptRSA(publicKey, message)
const origRSAMessage = decryptRSA(privateKey, encryptedRSAMessage)
console.log(origRSAMessage === message) // => true

// AES
const aesKey = generateAESKey()
const encryptedAESMessage = encryptAES(aesKey, message)
const origAESMessage = decryptAES(aesKey, encryptedAESMessage)
console.log(origAESMessage === message) // => true
```

## API 密码

RSA有两个功能: `encryptRSA`, (中文(简体) ), `decryptRSA`,AES则有三: `generateAESKey`, (中文(简体) ), `encryptAES`, (中文(简体) ), `decryptAES`。 。 。 .

### 高级

AES有三个功能:

-   `key = generateAESKey()`
-   `encryptedMessage = encryptAES(key, plainMessage)`
-   `plainMessage = decryptAES(key, encryptedMessage)`

`encryptAES` 创建一个独特的 [四、结 论](https://en.wikipedia.org/wiki/Initialization_vector) 对每封信件进行加密,并预留到产生的加密有效载荷上。 这么说吧 `encryptedMessage` 将采用格式

```
<iv>:<aesEncryptedPayload>
```

### 登记册系统管理人

RSA有两个功能:

-   `encryptedMessage = encryptRSA(publicKey, plainMessage)`
-   `plainMessage = decryptRSA(privateKey, encryptedMessage)`

这些函数用RSA加密/解密 _财务报告和审定财务报表_ 没错 RSA对它能加密多少数据有上限. 所以我们创建一个AES密钥,用RSA加密AES密钥,然后用AES加密实际消息.

注意加密的有效载荷(结果 `encryptRSA`)的格式:

```
<rsaEncryptedAESKey>:<aesEncryptedMessage>
```

#### 生成 RSA 密钥

此库无法生成 RSA 密钥 .

您可以使用打开sl:

```sh
# This generates a 2048 bit private key to file
openssl genrsa -out privateKey.pem 2048

# This extracts the public key to file
openssl rsa -in privateKey.pem -outform PEM -pubout -out publicKey.pem
```

你也可以使用类似的东西 [节点-rsa](https://github.com/rzcoder/node-rsa)数字 :

```js
// Example generating a RSA keypair with node-rsa
import NodeRSA from 'node-rsa'
function generateRSAKeypair () {
  const key = new NodeRSA()
  key.generateKeyPair(2048, 65537)
  return {
    publicKey: key.exportKey('pkcs8-public-pem'),
    privateKey: key.exportKey('pkcs8-private-pem'),
  }
}
```

## 许可证

麻省理工学院

## 常见问题

### @anvilco/encryption 是什么？

RSA 和 AES 加密助手

### 如何安装 @anvilco/encryption？

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

### @anvilco/encryption 支持 TypeScript 吗？

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

### @anvilco/encryption 支持 ESM 还是 CommonJS？

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

### @anvilco/encryption 可以商用吗？

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

### @anvilco/encryption 的下载量有多少？

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

### @anvilco/encryption 还在维护吗？

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

