材料准备
java算法库
https://github.com/hyfree/SM2_SM3_SM4Encrypt
https://github.com/PopezLotado/SM2Java
国家密码管理局关于发布
《SM2椭圆曲线公钥密码算法》公告
http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml
国家密码管理局关于发布《SM3密码杂凑算法》公告
http://www.sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml
说明
上面的两个算法库还是可以使用的,不过还是存在几个问题:
1.BigInteger在直接处理成16进制时会溢出一位,
关于这个问题*有说明
https://*.com/questions/4407779/biginteger-to-byte
2.国密参数和USERID
项目中使用的国密可能不是推荐的参数,需要改成标准参数
另外USERID需要做转换工作,基于ASCII编码
关注的项目
支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱
http://gmssl.org/