在国密算法逐渐成为国内开发与安全标准的背景下,很多同学在调试加密逻辑、验证消息摘要、测试数据加密时都会碰到 SM2、SM3、SM4 相关的问题。作为开发者,一直以来我们都是通过 SDK 或库去实现这些算法,但对于快速验证思路、检查结果有没有问题,写脚本或本地软件反而显得繁琐。
而且在网上查找相关工具时,经常会遇到一些页面 乱七八糟的广告、加载得慢、交互体验不好 的情况,实际效率并不高。为了方便自己快速完成这些算法的测试,我整理了基于浏览器即可操作的工具使用方法,并附上实践场景与对比,帮助你快捷地进行国密算法相关操作。
下面结合 SM2/SM3/SM4 三类常见国密算法一一介绍。
土豆丝工具: tools.tdsay.cn
一、SM2:非对称加密与签名
什么是 SM2
SM2 是国密体系里最常见的非对称公钥算法之一,它基于椭圆曲线密码学(ECC),既可以用于公钥加密/私钥解密,也可以用于数字签名与验签。相对于传统的 RSA 算法,SM2 在相同安全级别下性能更好、密钥更短。
实际使用场景
-
验证服务端/客户端之间加密数据是否一致
-
快速生成测试用的密钥对
-
验签流程验证与调试
-
学习国密签名流程、密文格式对比
有时候我们只想判断一段密文是不是正常解密出来的,而不是在项目里写一堆代码;这时候能在浏览器里直接做一遍会更快、也更直观。
二、SM3:消息摘要(哈希)
SM3 简单理解
SM3 是国密体系里的哈希算法(消息摘要算法)。它输入任意长度的消息,输出固定 256 位长度的摘要值,这个摘要不可逆且对原文极其敏感,是判断数据是否被篡改的重要手段。
这相当于国内“标准版本”的 SHA-256,很多地方在配合签名、完整性校验、MAC 校验时都离不开它。
使用场景
-
消息/文件完整性快速检测
-
数字签名前的摘要生成
-
与 SM2 配合做签名 + 验签完整流程检查
三、SM4:对称加密算法
SM4 是什么
SM4 是另一种国密算法,它是一个对称分组密码算法,密钥和分组长度均为 128 位,类似于 AES。与 SM2、SM3 不同的是,SM4 主要用于对大量数据进行对称加密/解密 工作。
使用场景
-
对大量数据(如文件、字符串)进行加密测试
-
调试对称密钥模式(如 ECB、CBC)
-
查看不同填充模式、不同编码输出的密文差异
四、为什么要用在线工具做这些
大家可能已经习惯在本地写代码验证算法是否正确,但有时候那会拖慢调试速度,特别是在验证思路的时候。例如:
-
不想每次写一段代码测试不同模式
-
想快速对比不同输入/输出格式
-
不想安装各种环境依赖
这种时候能直接在浏览器打开页面,在线输入内容、即时得到结果、并且不上传数据,就显得特别方便。
而且市面上一些页面往往布局混乱、广告太多,导致体验不佳,本地化验证也不够直观。因此选择一些简单、专注于功能展示的页面,有利于快速完成测试。
五、快速上手示例
下面是一些比较常见的使用流程,方便你在开发过程中快速定位问题:
🔹 SM2
-
打开页面
-
生成一对公钥/私钥
-
粘贴明文进行加密
-
用私钥解密对比
-
测试签名和验签逻辑是否一致
加密:
解密:
签名:
验签成功:
验证失败:
🔹 SM3
-
输入原始文本
-
观察生成的 256 位摘要
-
对比不同输入输出的摘要差异
加密:
下载:
🔹 SM4
-
输入对称密钥
-
选择模式和填充方式
-
输入待加密文本
-
查看输出并测试解密是否还原原文
加密:
解密:
六、小结
国密算法 SM2、SM3、SM4 分别对应:
-
SM2:非对称加密/签名验证
-
SM3:消息摘要哈希
-
SM4:对称加密/解密流程
在日常开发中,我们不仅要理解这些算法的基本原理,也需要一个快速验证思路的工具。今天介绍的基于浏览器的在线功能,都是为了让这些常见操作变得更直观、无需安装额外环境,同时不上传数据到服务器,增强数据安全性和使用便利性。
希望这篇实践分享对你理解和运用 SM2/SM3/SM4 有所帮助!