SM2 加解密工具
国密 SM2 非对称加密算法。
加密
解密
签名
验签
C1C3C2 (标准)
C1C2C3 (旧标准)
DER (ASN.1)
R|S (Concatenated)
私钥:
Hex
Base64
公钥:
Hex
Base64
输入内容
UTF-8
Hex
Base64
输出结果
Hex
Base64

关于 SM2:国密椭圆曲线算法基础

SM2 是国家密码管理局发布的非对称加密标准,基于椭圆曲线离散对数问题(ECDLP)。以下简要介绍 SM2 的核心原理、密文格式与常见使用场景,帮助您更高效地使用本工具。

#01

什么是 SM2?

SM2 是《中华人民共和国密码行业标准》(GM/T 0003-2012)中规定的非对称加密算法,基于 椭圆曲线离散对数问题(ECDLP)。在同等安全强度下,SM2 的密钥长度(256 位)远小于 RSA(3072 位),且在签名与加密方面表现更优。

SM2 定义了三类核心操作:公钥加密 / 私钥解密(用于数据保密传输)、私钥签名 / 公钥验签(用于身份认证与防篡改)、以及基于椭圆曲线的密钥交换(SM2 Key Exchange)。

本工具可在浏览器本地一次性完成密钥生成、加密、解密、签名与验签,是调试国密接口、验证密文格式的高效辅助手段。

#02

密钥结构与密文格式

SM2 采用的椭圆曲线方程为 y² = x³ + ax + b,在标准素数域 GF(p) 上定义,其中 p 为 256 位大素数。一个合法的 SM2 密钥对包含:

  • 私钥:一段 256 位的随机整数,必须保密保存。
  • 公钥:由私钥乘以椭圆曲线基点 G 得到的 64 字节(256 位 x || 256 位 y)曲线点,通常以 04 前缀标识未压缩形式。

密文排列顺序有两种主流规范:C1C2C3(旧版,按顺序为随机数公钥 → 密文数据 → 校验摘要),以及 C1C3C2(新国密标准,先放校验摘要再放密文数据)。本工具支持两种格式切换,并可在验签时指定签名编码为 DER (ASN.1)R|S 拼接

#03

数据安全与隐私说明

请牢记:SM2 的公钥加密仅保障数据在传输阶段的保密性,不替代传输层安全。实际部署中应配合 SM3 摘要、SM4 对称加密,并在 TLS/HTTPS 通道下使用。

本工具的密钥生成、加解密与签名过程全部发生在您的浏览器本地,不会上传至服务器,也不会写入 localStorage

几条额外建议:

  • 使用 生产私钥 时请在隐私窗口或离线环境操作,并及时清空输入。
  • 生产环境的 SM2 私钥必须以加密方式存储(如通过 PKCS#8 + 口令、或 HSM 密钥管理硬件)。
  • 签名/验签操作请明确约定 UserID(默认常为 1234567812345678),避免不一致导致验签失败。
  • 对接第三方系统时,请先确认双方使用同一种密文排列顺序(C1C2C3 vs C1C3C2)与签名编码格式。
📖 想了解更多?
查看完整的 SM2 指南:从椭圆曲线基础原理、公钥/私钥结构、C1C2C3 与 C1C3C2 密文对比、数字签名与验签流程、7 个真实应用场景、以及 SM2/SM3/SM4 搭配的国密安全最佳实践(约 12 分钟阅读)
阅读完整指南 →