最近开始做移动项目,基本共识是H5页面代码是不能写死秘钥或私钥的,给大家贡献一个方案:
1、前端存SM2公钥,后端存私钥
2、前端随机生成SM4秘钥K4,使用SM2公钥加密这个秘钥,得到SM2加密的K4密文
3、使用K4秘钥加密登录报文,得到SM4加密的登录密文
4、将K4密文+登录密文上送到后端,后端根据SM2私钥解出SM4秘钥,这个过程可以前后端达成一致的自定义加盐,例如同时上送一个MD5加密的日期字段。如果解密出来的SM2加盐内容对不上就认为是伪造的请求
5、解密SM2报文后其实前后端已经得到一个共用的SM4秘钥了,可以正常进行接口交互了。
版权归原作者 如疚亦如疯 所有, 如有侵权,请联系我们删除。