本篇内容主要讲解“微信小程序接口加密怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序接口加密怎么实现”吧!
小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证
1.下载一份Js版的aesUtil.js源码。
2.下载一份Js版的md5.js源码。
3.在pulic.js中进行加解密操作代码如下,其中秘钥和免费云主机域名秘钥偏移量要与后台的一致。
var CryptoJS = require(‘aesUtil.js’); //引用AES源码js
var md5 = require(‘md5.js’)
var key = CryptoJS.enc.Utf8.parse(“76CAA1C88F7F8D1D”); //十六位十六进制数作为秘钥
var iv = CryptoJS.enc.Utf8.parse(‘91129048100F0494’); //十六位十六进制数作为秘钥偏移量
//解密方法
function Decrypt(word) {
var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decrypt = CryptoJS.AES.decrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
//加密方法
function Encrypt(word) {
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString().toUpperCase();
}
//暴露接口
module.exports.Decrypt = Decrypt;
module.exports.Encrypt = Encrypt;
4.在网络请求帮助类中进行参数的加密和返回数据的解密操作。
其中生成Token的规则,【生成Token的规则可根据具体的业务逻辑自己定义,我这里使用的规则是根据请求参数的字母排序取其value并加上当前时间戳再进行MD5加密】
由于初学SpringMVC,使用的方式不一定是最优最好的,如有不妥善之处,请各位看官多多指教 思路:
通过过滤器拦截请求参数,通过自定义参数包装器对参数进行解密。 在拦截器获取请求的Token并生成服务器端Token进行验证。 对返回参数通过JSON转换器进行加密处理。
1.重写HttpServletRequestWrapper,在自定义的HttpServletRequestWrapper 中对参数进行处理
新建过滤器,在拦截器中调用自定义的参数包装器
web.xml中对过滤器进行配置
AES加解密操作
2.新建拦截器,验证Token以及解密的判断
在spring中对拦截器注册
Token的验证
3.对返回数据进行加密处理,新建JSON转换器继承自阿里的FastJsonHttpMessageConverter
spring中对JSON转换器进行配置到此,相信大家对“微信小程序接口加密怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
相关推荐: 如何在Python中实现真正的switch-case语句
这篇文章给大家分享的是有关如何在Python中实现真正的switch-case语句的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这是使用字典来模仿 switch-case 构造的代码。Python是一种编程语言,内置了许多有效的工具…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。