平台兼容性
uni-app
app-vue |
app-nvue |
app-android |
app-ios |
? |
? |
? |
? |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
uni-app x
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
主要功能
当前时间戳加上一个随机数得到一个唯一的串号,再用这个串号加上移动端和服务器端约定的key,最后用md5加密后发送给服务器端。在服务器端把收到的串号加上key,做md5后,和接收到的加密串做对比,如果一致就向移动端传回请求的数据。
目录结构
- md5.js //md5加密方法
- random.js //生成随机数的方法
- dokey.js //存放key和时间戳的方法
使用方法
- 将zip包中的三个js文件拷贝到项目根目录
- 修改dokey.js中的key为你自己定义的秘钥
const key = 'lVHtuCOfgXffjNQt';
- 在需要使用的页面中导入md5.js和dokey.js
<script>
import md5 from '@/md5.js';
import dokey from '@/dokey.js';
……
</script>
生成加密串:
var secretdate=dokey.secretdate();
var secreted=md5(secretdate + dokey.getkey());
在向服务器发送请求时,需要把两个secretdate和secreted两个串都发送给服务器。服务器端应该把secretdate+key做Md5后得到的串和secreted串做对比。
为了增加安全性,在服务器端还应该对请求是否过期以及请求的串是否重复提交过做验证。