材料准備
java算法庫
https://github.com/xjfme/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進制時會溢出一位,
關於這個問題stackoverflow有說明
https://stackoverflow.com/questions/4407779/biginteger-to-byte
2.國密參數和USERID
項目中使用的國密可能不是推薦的參數,需要改成標准參數
另外USERID需要做轉換工作,基於ASCII編碼
關注的項目
支持國密SM2/SM3/SM4/SM9/ZUC/SSL的密碼工具箱
http://gmssl.org/