1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > JavaScript实现按字典排序进行md5加密 以及个人在小程序也可以实现

JavaScript实现按字典排序进行md5加密 以及个人在小程序也可以实现

时间:2019-01-25 00:53:20

相关推荐

JavaScript实现按字典排序进行md5加密  以及个人在小程序也可以实现

// utils.js 文件

const md5 = require('../md5.js')

function creatheaderkey(obj){

let did = Math.ceil(Math.reandom()*10) // 随机数

let time1 = new Date().getTime() //时间毫秒数

let time = (time1+' ').slice(0,-3) //截取前十位

let appType = 'wechatApp'

let init = {

'app-type': arrType,

'did': did,

'time': time

}

// 2.1 先把对象合并成一个对象

let init = Object.assign({}, init,obj} // init 函数内部的对象 obj 外部传进来的对象 得到一个新的对象

//=== Object.assign() 是合并对象的方法 只是其中之一 也有jQuery.extend() 也可以实现 或者原生JavaScript 反正多种

let pro = [ ] //声明一个空数组

let $i = 0

for(letkeyin init) { //取出对象里面的键 添加到数组中

pro[$i] = key

$i++

}

pro.sort() //把数组里面进行排序

let string = ''

let $j = 0

for (let tmp in init) { // 根据排序好的进行重新赋值

string+= pro[$j] + init[pro[$j]]

$j++

}

console.log(string) // 得到排序好的值

let sign = md5.hexMD5(string) // 得到加密后的字符串

let rourse = {

'sign' : sign

'app-type': arrType,

'did': did,

'time': time

}

//== 2.2 如果需要把外部进来的对象 返回出去 在加密完成后 再次合并对象 在这里就用个原生的方法实现吧

function extend(target,resource) {

for(let key in resource) {

if( resource.hasOwnProperty(key) && !target.hasOwnProperty(key){ //判断对象是有相同的属性

target[key] = resource[key]

}

}

return target

}

//== 把两个对象传进去进行操作 返回一个新的

let rourse = extend(init,obj) 调用就可以直接得到对应的值

return rourse //return 出去

---------------------------------------------拓展加密

//2..需要从外部传进来进行先进行排序 后加密 可以传进来一个对象object

}

module.exports = { //导出

creatheaderkey: creatheaderkey

}

//=====引入js 调用

const utils = require(../urils.js)

let headerkey = utils.creatheaderkey()

console.log(headerkey) // 不传参的情况下 得到排序好的值

let obj = {

'token' : 'asasdasdadasdasd123132123'

}

let headerkey =utils.creatheaderkey(obj)

console.log(headerkey) // 返回一个带参数的值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。