因业务要求,RSA、AES、MD5等加密方式,要合规,需要替换成,SM2、SM3、SM4。因此,个人整理资料,实现了一份。
一:参考
https://github.com/gotoworld/hsd-cipher-sm -- 代码主体
https://blog.csdn.net/wkernel/article/details/71193413 -- 对应关系
https://github.com/xjfme/SM2_SM3_SM4Encrypt -- SM2 秘钥对,生成
http://maven.outofmemory.cn/org.bouncycastle/ -- jar包下载地址,我下载的是 jdk16_1.46
二:核心点
对称算法: (DES 3DES AES)===》 SM1、SM4【其中SM1依赖硬件,因此不予实现,也未公开】
非对称密码算法: (RSA) ===》 SM2(椭圆曲线密码)
散列算法: (MD5、SHA-1、SHA-256、SHA-384、SHA512) ===》 SM3
三:实现
SM2:创建密钥对、获取公钥、获取私钥、加密、解密、签名、验签
SM3:加密
SM4:创建秘钥、加密、解密
工程链接:
https://github.com/yline/as_x_jar/tree/master/SM 【Android工程,包含实现、jar文件、测试案例】
工程目录:
测试日志: