npm安装js-md,以及使用
npm 安装命令
npm install js-md5 --save
使用在 min.js 中引用:
import md5 from 'js-md5';
Vue.prototype.$md5 = md5;
直接在文件中引用
import md5 from 'js-md5';
调用代码
//当前时间
var d = new Date();
console.log(d)
//当前时间戳
var times = Date.now(d);
console.log(times);
//hash的值
var hashs=md5("userid=D7E9A9493B860E33&time=" + times + "&salt=5z5nhbsuFQbBkgmGNMRq6ZdMl2GVOpYN")
console.log(hashs)
//接口
axios.get("https://ccapi.csslcloud?userid=D7E9A9493B860E33&time=" + times+ "&hash=" + hashs)
.then(response => {
this.data = response.data
console.log(this.data)
console.log("成功")
});
HTQS相关说明
当需要和 Live API系统进行 HTTP 通信时,需要将原始的 Query String 转换为和请求时刻相关的 Hashed Query String 后再通过 GET 方法请求 Live API。为了描述的方便,我们将 Query String 转换为 Hashed Query String 的算法称为 THQS 算法。在描述详细的算法流程之前,我们先介绍一下 Unix 时间戳的概念。
Unix 时间戳,即该时间到 1970 年 1 月 1 日(UTC/GMT 的午夜)之间的秒数。 例如,北京时间 2010 年 12 月 9 日 15 点 23 分 12 秒的 Unix 时间戳为 1291879392。
THQS 算法
假设原来的 QueryString 为 q, 通过以下 4 个步骤,即可得到最终用于通信的 HashedQueryString:
- 对于q中的每个键值对按照键的字母顺序升序排序,得到排序后的请求字符串qs;
- 加入当前时间的 Unix 时间戳和直播平台帐号对应的 API Key 值,得到散列前的字符串 qf:
qf ← qs&time=12345&salt=aSdF1234 - 计算得到 qf 的 md5 值,假设为 abcdefg
hash ← md5(qf) - 最终的 HashedQueryString 为:
hqs ← qs&time=12345&hash=abcdefg
用 hqs 代替 q 进行 Http 通信。
下⾯举一个例⼦子说明计算过程。假设用户从直播平台获取到的API Key值是aSdF1234,当前时间为2010年12月9日15点23分12秒,原始的QueryString 是:
name=harry&level=top&salary=1000
第⼀步,将上述QueryString 按照字⺟顺序进行升序排序,结果是:
level=top&name=harry&salary=1000
第⼆步,附加time值和salt值,得到取hash前的字符串
level=top&name=harry&salary=1000&time=1291879392&salt=aSdF1234
第三步,对上述字符串取 md5 值
hash=BF04A55B30CFF562F7ADD9F054AB7FFB!
因此,最终进⾏行Http通信的字符串为level=top&name=harry&salary=1000&time=1291879392&hash=BF04A55B30CFF562F7ADD9F054AB7FFB