在线 SM2 国密公钥算法工具:一键生成密钥对、加密解密(C1C3C2 新国标密文结构)、签名验签。SM2 基于 256 位椭圆曲线,是 RSA 的国密替代。浏览器本地运行,私钥不出设备。
摘要:SM2 国密公钥算法:密钥对生成、加解密(C1C3C2)、签名验签,RSA 的国密椭圆曲线替代。
本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。
使用指南
SM2 是国密椭圆曲线非对称算法(对标 RSA),覆盖加密、解密、签名、验签四类操作。本工具在浏览器本地生成密钥对并完成全部操作——私钥不出本机,适合联调国产密码接口时快速造一对测试密钥。
1. 怎么用
- 先生成一对 SM2 密钥(公钥 + 私钥,十六进制串)。
- 确认密文顺序:默认 C1C3C2(新国标);对接旧 SDK 时切到 C1C2C3。
- 加解密:用公钥加密得到密文,再用私钥解密还原明文。
- 签名验签:私钥签名消息,公钥验签,两端各用各的那一半。
2. 典型场景
- 国产密码改造联调:对端给了算法规格,先在这里快速造测试密钥验证流程。
- 对比 RSA 学习椭圆曲线操作:同样的公钥加密 / 私钥解密模型,密钥短得多。
- 验签排查:本地验签能排除传输环节的污染,直接对上就是「对端签名逻辑有问题」。
3. 密钥安全边界
SM2 私钥以原始十六进制字符串呈现,复制到剪贴板即离开页面控制——测试场景没问题,但不要把生产私钥粘进任何网页(包括这个纯本地的)。本工具的价值是「快速产生可用测试密钥对」和「隔离联调问题」,不是生产密钥管理。私钥如需落盘保存,用带访问控制的密钥管理系统。
4. 密文顺序与公钥格式(联调高频)
- C1C3C2 vs C1C2C3:顺序错时解密必失败,症状像密钥错误——先在本页切换顺序对照。
- 公钥:130 位 04 非压缩、128 位裸坐标(自动补 04)、66 位 02/03 压缩均可;粘贴可带 0x 或空白。
- 密文前缀:部分库给整段密文再加 04,本工具解密时自动剥除。
- 签名:输出 ASN.1 DER;对端若给裸 r‖s(128 hex)需先转换。userId 默认 1234567812345678,两端须一致。
5. 国密三件套什么时候用哪个
国密改造的本质是对标替换:SM2 换 RSA(非对称——签名、密钥交换、公钥加密),SM3 换 SHA-256(哈希摘要),SM4 换 AES-128(对称数据加密)。一个典型国密接口:用 SM4 加密报文体,SM2 签名报文摘要,摘要本身用 SM3 产生——三件套在一个请求里各司其职。不清楚对端规格时,先在本站把三种算法的测试向量各跑一遍,拿到对得上的组合再写代码。
6. 为什么联调/密评场景会遇到它
等保三级与商用密码应用安全性评估(密评)要求关键数据的完整性保护使用国密算法——具体落到接口签名就是 SM2。金融、政务、能源行业的国产化改造里,「接口加 SM2 签名验签」是最常见的改造项:发送端用私钥签,接收端用公钥验,任何中间篡改都会导致验签失败。联调阶段的验签失败九成不是算法错了,而是上面说的格式问题——先在本页把签名值对上,再去查业务代码。
7. 密文顺序与协议层边界
本工具默认加密输出 C1C3C2(GB/T 32918.4),签名为 ASN.1 DER;页面可切换 C1C2C3 以对接旧 SDK——顺序错时先切对端顺序对照,而不是怀疑曲线参数。更深的联调表见[《SM2/SM3/SM4 实战》](/blog/sm-crypto-practical-guide)。本页不做 TLCP / 国密 TLS 握手;协议与双证书见[《国密 HTTPS》](/blog/guomi-tls-nginx-guide),标准号对照见[《标准号速查》](/blog/sm-standard-numbers-explained),家族选型见[《国密算法入门》](/blog/guomi-algorithms-guide)。
常见问题
不会离开:密钥对在浏览器本地生成,加解密、签名、验签也全部在本页完成,适合联调时快速造一对测试密钥。但私钥以明文十六进制呈现,复制到剪贴板就脱离了页面控制——生产密钥的生成、存储、销毁应交给通过国密局认证的硬件密码模块或合规软件库,不要把生产私钥粘贴进任何网页,包括这个纯本地的。
选型看三点:安全强度上 256 位 SM2 椭圆曲线约等于 3072 位 RSA,密钥短得多;性能上小数据 SM2 签名快、RSA 验签快,各有优势;合规上国密场景必须 SM2。三件套是对标替换关系:SM2 换 RSA(签名、密钥交换、公钥加密),SM3 换 SHA-256(摘要),SM4 换 AES-128(对称加密)——典型国密接口是 SM4 加密报文体、SM2 签名摘要、摘要由 SM3 产生。
默认 C1C3C2(GB/T 32918.4-2016)。页面提供「密文顺序」切换以对接旧 SDK 的 C1C2C3——两种顺序不互通,顺序错时解密必失败,症状像密钥错误,联调对不上先切这项对照。部分库给整段密文再加 04 前缀,本工具解密时会自动剥除。
非压缩格式 = 04 前缀(1 字节)+ X 坐标(32 字节)+ Y 坐标(32 字节)= 65 字节 = 130 位 hex。也支持粘贴 128 位裸坐标(自动补 04)或 66 位压缩公钥(02/03 开头),可带 0x 或空白。私钥是 32 字节随机数(64 位 hex)。
九成不是算法错了,而是格式问题:签名输出是 ASN.1 DER,对端若给裸 r‖s(128 hex)需先转换;userId 默认 1234567812345678,两端必须一致;密文顺序错也会伪装成密钥错误。先在本页把签名值对上,再去查业务代码。
不能。本页验证的是应用层 SM2 原语(加解密与签名验签),不做 TLCP 或 ShangMi TLS 握手。协议层与双证书部署见本站《国密 HTTPS 部署指南》。
相关工具
相关文章
SM2 和 RSA 怎么选?国密椭圆曲线与国际公钥算法的完整对比
SM2 和 RSA 的选型对比:安全强度换算(256 位 SM2 ≈ 3072 位 RSA)、性能差异(签名验签各有优势)、密钥长度、C1C3C2 与 C1C2C3 密文格式兼容坑、国密合规要求(等保/政务/金融),附在线 SM2 工具实操验证方法。
国密算法实战指南:SM2、SM3、SM4 怎么选、怎么对接、怎么排查
SM2/SM3/SM4 国密算法的使用场景与选型:对称加密选 SM4、哈希选 SM3、签名加密选 SM2。含 C1C3C2/C1C2C3、hex/Base64、CBC IV 等高频联调坑的排查顺序,全程配套浏览器本地工具。
国密算法入门:SM2/SM3/SM4/SM9/ZUC 是什么、谁在用、怎么落地
国密算法(商用密码)入门:SM2/SM3/SM4/SM9/ZUC 定位与用途、与 RSA/SHA/AES 对应、选型决策树、TLCP 与 RFC 8998 边界、等保密评驱动力,以及浏览器本地工具能验证什么、不能代替什么。