这里写自定义目录标题
银行项目,需要把密码改造为国密加密,原本是MD5加密,现在前后端改造,因为是内网项目,所以遇到了一些问题,接下来只说出现的问题的思路,没有代码。
首先,后端加密用的是sm的那个依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.10</version>
</dependency>
<!-- 第三方加密功能依赖 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.68</version>
</dependency>
这样就可以用smutil使用sm算法,看自己选择,我这里用的摘要签名sm3返回64位加密
然后前端这里就出现问题了,因为是内网项目,vue的nodejs的加密模块中没有sm的库,如果有的话可以直接用,搜索了很多东西,可以通过npm install --save sm-crypto命令下载,这里就有一个问题,内网没有网,怎么办呢?第一反应是找安全科的去要这个sm的库,结果没人理,最终我是通过外网下载后,把sm-crypto的库通过行方人员传到内网,直接放在node_modules文件夹下,就可以使用sm的算法,我这里也是sm3的加密。
var sm3 = require(‘sm-crypto’).sm3
然后sm3(data)函数返回加密的数据赋给password就可以跟后端做匹配登录了。
总结下来还是挺简单的,只需要前后端导包,然后使用就可以了。