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(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) // 返回一个带参数的值
转载于:https://www.cnblogs.com/PinkYun/p/9842108.html
JavaScript实现按字典排序进行md5加密, 以及个人在小程序也可以实现相关推荐
- php字符串字典排序,javascript实现PHP字典排序ksort
/** * javascript实现PHP字典排序 * @param {Object} vm 当前this * @param {Array} inputArr 规定要进行排序的数组 * @param ...
- map排序;MD5加密
import java.lang.reflect.Method;import java.security.MessageDigest;import java.util.Comparator;impor ...
- java大写md5_java 字符按字母排序-拼接-md5加密-大写
package yixin; import java.security.MessageDigest; import java.util.Arrays; public class data_change ...
- python 字典练习 记录学生是否交作业的小程序
#记录学生是否交作业的小程序 #包括:学生名字.日期.状态 1 data={ 2 'taotao':{ 3 '2018-6-3':'已交', 4 '2018-6-4':'未交', 5 '2018-6- ...
- 微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)
2019独角兽企业重金招聘Python工程师标准>>> 开发中常常遇到MD5加密,最近做小程序也用到了,简单总结了一下: 这要有两个加密文件,一个不支持中文,一个支持,所以你选择支持 ...
- 微信小程序:MD5 加密
微信小程序是基于 js 进行封装的,所以,本质上是 js 的 MD5 加密 一个问题是,我后台服务器用的是 Python,js 和 Python 会有 MD5 密文不一致的情况 具体参考:https: ...
- md5加密用户登陆遇到的问题及解决办法
有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密 ...
- java md5 32位加密算法_java 32位md5加密类
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.security.MessageDigest; import ja ...
- iOS 加密算法之MD5加密使用
2020.06.04编辑 前言 对于加密算法这个概念我的确不太清楚,虽然我知道加密算法存在的意义,但是这并不妨碍我不知道加密算法具体都有哪些.所以今天这篇文章就是了大家一起学习开发中哪些加密算法. 在 ...
- 微信小程序接口实现加密
微信小程序接口实现加密教程: 场景 小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证 一.小程序端功能编写 1.下载一份Js版的aesUtil.js源码.[注:文章末尾 ...
最新文章
- pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)
- iOS10 UI教程视图的绘制与视图控制器和视图
- 【手写系列】写出我的第一个框架:迷你版Spring MVC
- 【每周CV论文推荐】 初学深度学习人脸属性分析必读的文章
- problem a: 简单的整数排序_什么是基数排序?
- 【超清视频】CCNA系列课程之二:IP地址介绍及VLSM子网划分
- 自己帮别人写的网站可以公开源码吗_雷军靠写代码赚第一个 100 万,马化腾亲自写腾讯网,码农出身的大佬...
- 点开那些优秀的硕博士们的朋友圈,他们都有这些特点!
- J2SE J2EE J2ME的区别
- treelistview 所有节点失去焦点_垃圾询盘过滤,焦点科技的 Milvus 实践
- 单击托盘显示菜单mfc_PhotoShop制作滚动菜单栏教程
- AcWing 840. 模拟散列表(散列hash)
- 张果老能是鸿蒙时期一蝙蝠,他是八仙之一,吹一口气纸驴就能活过来,真实身份却是一只蝙蝠精...
- Android 12中系统Wallpaper详解1--锁屏透看壁纸和桌面透看壁纸的切换
- 三分钟教你开通支付宝收款二维码
- 万国数据二季度调整后EBITDA利润率43.5% 高于指引预测
- 安装CentOS找不到硬盘,无法分区,No disks selected
- 一个提升n倍效率的写作工具,我咋不知道?
- 广发证券基于分布式架构的新一代估值系统实践
- 汽车系统安装linux,linux系统不仅是电脑上的系统 更是会车载主流系统
热门文章
- 图像局部特征(四)--FAST-ER角点检测子
- 人脸检测(五)--adaboost总结,整理
- mysql指令按顺序排列_《深入浅出MySQL》读书笔记(一)sql基础,常用的操作语句。...
- keil5——常见报错【cannot load flash device description】
- CentOS安装lynis安全漏洞扫描工具
- 使用hive计算每一年的最大气温的日期+温度
- 词频统计及其效能分析
- Linux第二周学习笔记(12)
- Postdoctoral Position
- contentType,charset和pageEncoding的区别