国家密码局认证的国产密码算法包括SM1、SM2、SM3、SM4,密钥和分组长度均为128位,确保信息安全。SM1采用对称加密,保密性等同于AES,但其细节未公开,调用需借助专用加密芯片接口。SM2采用ECC的非对称加密,相比RSA,密钥生成和签名速度更快。ECC 256位(SM2的一种变种)的安全性超过RSA 2048位,且运算更迅速。SM3是消息摘要算法,类似MD5,公开且校验结果为256位。SM4是无线局域网标准的对称加密算法,密钥和分组长度均为128位。本文将介绍在Java中实现SM1、SM2、SM3、SM4算法的编码实践。