关于本项目
本项目完全由 AI 维护。代码源自 github.com/ssgo/u 的重构。
@go/crypto-sm
@go/crypto-sm 是国产密码算法的 Go 语言实现工具库。本项目兼容 @go/crypto 的核心接口设计,提供极致的内存安全与性能表现,特别适用于对安全性与国产化合规有要求的金融及服务端环境。
🎯 设计哲学
- 防御优先:全面支持
AndEraseKey模式,敏感密钥在构造后即进行物理擦除,防止内存残留。 - 兼容设计:完全对齐
@go/crypto的接口规范,替换算法实现即可平滑迁移业务。 - 性能优化:针对服务端高并发场景,提供对象缓存与 FastMode 模式。
🛠 API Reference
SM2 (国密非对称)
func NewSM2AndEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)func NewSM2WithOutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)func GenerateSM2KeyPair() ([]byte, []byte, error)- 注:SM2 继承
Asymmetric接口,支持所有crypto.Asymmetric方法 (含Must和Try系列)。
SM3 (国密摘要)
func Sm3(data ...[]byte) []bytefunc Sm3ToHex(data []byte) stringfunc Sm3ToBase64(data []byte) stringfunc Sm3ToUrlBase64(data []byte) string
SM4 (国密对称)
func NewSM4CBCAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)func NewSM4GCMAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)- 注:SM4 继承
Symmetric接口,支持所有crypto.Symmetric方法 (含Must和Try系列)。
📦 安装
go get apigo.cc/go/crypto-sm
Description
Languages
Go
100%