• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//  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(let key in 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)  //  返回一个带参数的值

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
01小程序基本的文件组成和全局配置及页面配置发布时间:2022-07-18
下一篇:
微信小程序(六)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap