Description
n8n SM2 密码学节点
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
n8n SM2 密码学节点
为 n8n 工作流提供国密 SM2 加密解密功能
查看详细文档 »
目录
- n8n SM2 密码学节点
- 🔐 国密 SM2 算法:基于官方 sm-crypto 库,提供标准的 SM2 加密解密
- 🚀 高性能处理:支持大文本和二进制数据的快速加密解密
- 📊 灵活配置:支持自定义字段名称和数据格式
- 🎯 易于集成:符合 n8n 标准,开箱即用
- 🛡️ 安全可靠:严格遵循国密标准,确保加密安全性
- 💡 智能错误处理:友好的错误提示和异常处理
- n8n 框架:n8n-workflow
- 密码学库:sm-crypto
- 开发语言:TypeScript
- 构建工具:Gulp + TypeScript
- 代码规范:ESLint + Prettier
- n8n 版本:>= 1.0.0
- Node.js 版本:>= 20.15
- 已测试版本:n8n 1.x
– 目录
– 关于项目
– 核心功能
– 技术栈
– 快速开始
– 环境要求
– 安装步骤
– 项目结构
– 使用指南
– 支持的操作
– 操作详细说明
– 使用示例
– 开发命令
– 构建和开发
– 代码质量
– 发布
– 部署选项
– 本地开发环境
– 生产环境部署
– 配置参数
– 节点参数
– 兼容性
– 开发贡献
– 许可证
– 联系方式
关于项目
这是一个专为 n8n 工作流自动化平台开发的社区节点,提供了完整的 SM2 密码学功能集成。
SM2 是基于椭圆曲线的公钥密码算法,是中国国家密码标准(GM/T 0003-2012)的一部分。通过此节点,你可以在 n8n 工作流中无缝集成 SM2 加密和解密功能,确保数据传输的安全性。
核心功能
技术栈
快速开始
环境要求
安装步骤
1. 通过 n8n 社区节点安装
按照 n8n 社区节点安装指南 进行操作。
2. 通过 npm 安装
npm install n8n-nodes-sm2-crypto
3. 重启 n8n 服务
# 如果使用 npm 安装的 n8n
n8n start
# 如果使用 Docker
docker restart n8n
4. 验证安装
在 n8n 编辑器中搜索 “SM2 Crypto” 节点,应该能看到新增的节点。
项目结构
├── /nodes/ # n8n 节点实现
│ └── /Sm2Crypto/ # SM2 密码学节点
│ ├── Sm2Crypto.node.ts # 主节点实现
│ └── sm2-crypto.svg # 节点图标
├── /dist/ # 编译输出目录
├── .eslintrc.js # ESLint 配置
├── .prettierrc.js # Prettier 配置
├── gulpfile.js # Gulp 构建配置
├── package.json # 项目依赖和脚本
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
使用指南
支持的操作
| 操作 | 描述 | 用途场景 |
|————|————————————|——————————|
| 加密 | 使用 SM2 公钥加密明文数据 | 数据保护、安全传输 |
| 解密 | 使用 SM2 私钥解密密文 | 数据解密、信息恢复 |
操作详细说明
#### 🔒 加密操作
data)// 输入示例
{
"data": "Hello, World!",
"publicKey": "7b93a5e9d8c4f2a1b6e3c7d9f4a2b8e1c5d6f9a2b4e7c1d8f3a6b9c2e5d7f8a1"
}
#### 🔓 解密操作
data)// 输入示例
{
"data": "04a1b2c3d4e5f6...",
"privateKey": "3f2a1b4c5e6d7f8a9b2c3d4e5f6a7b8c9d2e3f4a5b6c7d8e9f1a2b3c4d5e6f7"
}
使用示例
场景一:敏感数据加密
HTTP请求节点 → 数据处理 → SM2加密 → 数据库存储
场景二:数据解密处理
数据库查询 → SM2解密 → 数据处理 → API响应
场景三:文件安全传输
文件读取 → SM2加密 → 文件传输 → SM2解密 → 文件处理
输出格式
加密输出:
{
"data": "Hello, World!",
"ciphertext": "04a1b2c3d4e5f6..."
}
解密输出:
{
"data": "04a1b2c3d4e5f6...",
"plaintext": "Hello, World!"
}
错误输出:
{
"data": "invalid data",
"error": "Invalid key format"
}
密钥格式要求
开发命令
构建和开发
npm run build – 完整构建(TypeScript 编译 + 图标复制)npm run dev – 开发模式,TypeScript 监听模式npm run format – 使用 Prettier 格式化代码npm run lint – 运行 ESLint 检查npm run lintfix – 自动修复 ESLint 问题代码质量
npm run prepublishOnly – 发布前检查(构建 + lint)npm run publicPublish – 发布到 npm(公开访问)发布
发布新版本
npm version patch|minor|major
npm run publicPublish
部署选项
本地开发环境
1. 克隆项目
git clone https://github.com/felix-liuyj/n8n-nodes-sm2-crypto.git
cd n8n-nodes-sm2-crypto
2. 安装依赖
npm install
3. 开发模式
npm run dev
4. 链接到本地 n8n
# 创建全局链接
npm link
# 在 n8n 项目中链接
cd /path/to/n8n
npm link n8n-nodes-sm2-crypto
生产环境部署
1. 通过 npm 安装
npm install n8n-nodes-sm2-crypto
2. Docker 环境中安装
FROM n8nio/n8n:latest
RUN npm install n8n-nodes-sm2-crypto
3. 通过 n8n 社区节点管理器
– 在 n8n 界面中安装社区节点
– 搜索 “n8n-nodes-sm2-crypto”
– 点击安装并重启 n8n
配置参数
节点参数
#### 加密操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|—————|———|——|————————-|——–|
| token | string | ✅ | SM2 公钥(十六进制) | – |
| inputFieldName| string | ❌ | 输入数据字段名 | data |
#### 解密操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|—————|———|——|————————-|——–|
| token | string | ✅ | SM2 私钥(十六进制) | – |
| inputFieldName| string | ❌ | 输入数据字段名 | data |
兼容性
| 环境要求 | 最低版本 | 推荐版本 | 测试版本 |
|—————|————|————|————-|
| n8n | 1.0.0 | 最新版本 | 1.x |
| Node.js | 20.15 | 20.x LTS | 20.15+ |
| TypeScript | 5.0 | 5.8+ | 5.8.2 |
开发贡献
欢迎参与项目开发!请遵循以下步骤:
1. Fork 项目
2. 创建功能分支 (git checkout -b feature/AmazingFeature)
3. 提交更改 (git commit -m 'Add some AmazingFeature')
4. 推送到分支 (git push origin feature/AmazingFeature)
5. 创建 Pull Request
开发环境搭建:
克隆项目
git clone https://github.com/felix-liuyj/n8n-nodes-sm2-crypto.git
cd n8n-nodes-sm2-crypto安装依赖
npm install开发模式
npm run dev构建项目
npm run build代码检查
npm run lint
许可证
本项目基于 MIT 许可证开源。详细信息请查看 LICENSE.md 文件。
联系方式
作者:Felix Liu (Cambria Tech)
邮箱:[email protected]
项目链接:https://github.com/felix-liuyj/n8n-nodes-sm2-crypto
—
相关资源:
[contributors-shield]: https://img.shields.io/github/contributors/felix-liuyj/n8n-nodes-sm2-crypto.svg?style=flat-square
[contributors-url]: https://github.com/felix-liuyj/n8n-nodes-sm2-crypto/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/felix-liuyj/n8n-nodes-sm2-crypto.svg?style=flat-square
[forks-url]: https://github.com/felix-liuyj/n8n-nodes-sm2-crypto/network/members
[stars-shield]: https://img.shields.io/github/stars/felix-liuyj/n8n-nodes-sm2-crypto.svg?style=flat-square
[stars-url]: https://github.com/felix-liuyj/n8n-nodes-sm2-crypto/stargazers
[issues-shield]: https://img.shields.io/github/issues/felix-liuyj/n8n-nodes-sm2-crypto.svg?style=flat-square
[issues-url]: https://github.com/felix-liuyj/n8n-nodes-sm2-crypto/issues
[license-shield]: https://img.shields.io/github/license/felix-liuyj/n8n-nodes-sm2-crypto.svg?style=flat-square
[license-url]: https://github.com/felix-liuyj/n8n-nodes-sm2-crypto/blob/master/LICENSE.md


