简而言之,对之前使用国际加密算法的方式,更改为国密算法
主要的国密算法包括 : SM2, SM3, SM4
与之对应的需要修改的国际算法为:
RSA算法 -- 替换为 SM2
MD5摘要 -- 替换为SM3
AES算法 -- 替换为SM4
下面说说项目里具体的使用场景(这里仅以后端为例):
1. 用户密码: 本身库中存储的AES密文 更改为 SM4密文
sm4加密步骤:
拿到原密文,先拼接至128位字符串
将字符串转化为十六进制数据,
调加密机提供的接口进行加密,
得到最终密文,入库.解密反之即可
2.文件上传: 本身为MD5摘要 替换为SM3摘要
SM3处理步骤:
先对文件内容进行MD5摘要,得到md5code
转16进制,再调加密机接口对md5code进行SM3摘要,得到sm3code
把sm3code转字节数组,再进行base64编码,
将字节数组转化为16进制字符串
再将16进制字符串转化为字符串,即最终数据
SM2为非对称加密,其签名速度与秘钥生成速度都快于RSA。
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位