国密 SM2 / SM4 算法工具箱
纯 PHP 实现 SM3 摘要与 SM4 对称加解密(ECB / CBC),支持文本与文件;识别 SM2 证书曲线与签名算法,并在服务器 OpenSSL 支持时校验 SM2 签名,全部本地运算。
本地计算
数据不落盘
国密算法说明SM3 摘要与 SM4 加解密由本站纯 PHP 实现,结果与 GMT 0004 / GB/T 32907 标准测试向量一致。SM2 属于椭圆曲线公钥算法,验签依赖服务器 OpenSSL 是否编译并启用 SM2 曲线。
SM3 摘要计算 256 位,等效国密哈希
SM4 对称加解密 128 位密钥 · ECB / CBC · PKCS#7
SM2 证书 / 公钥识别与验签 依赖 OpenSSL SM2 支持
常见问题 关于本工具的说明与边界
SM3 和 SM4 的结果和标准一致吗?
一致。SM3 采用 GB/T 32905 的 256 位摘要流程,SM4 采用 GB/T 32907 的 128 位分组与 32 轮密钥扩展;页面内置标准测试向量(SM3("abc")=66c7f0f4…、SM4 标准密钥对 0123456789abcdef… 加密为 681edf34…)可自行核对。
SM2 为什么有时只能识别、不能验签?
SM2 是国家密码管理局定义的椭圆曲线公钥算法,验签依赖服务器 OpenSSL 是否编译了 SM2 曲线并暴露 SM3 摘要常量。若当前环境不支持,工具仍可解析证书的 SM2 曲线、签名算法与公钥长度,但会明确提示无法在本机完成验签,避免给出错误结论。
SM4 应该选 ECB 还是 CBC?
生产环境选 CBC(或 GCM 等带认证模式)并每次使用随机 IV;ECB 相同明文会产生相同密文,只适合标准向量测试。页面默认 CBC,IV 需 16 字节,填充采用 PKCS#7,解密时会校验填充是否合法。
相关工具