1、untils 新建md5.js

/* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. * Code also contributed by Greg Holt * See http://pajhome.org.uk/site/legal.html for details. */  /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */
function safe_add(x, y)
{  var lsw = (x & 0xFFFF) + (y & 0xFFFF)  var msw = (x >> 16) + (y >> 16) + (lsw >> 16)  return (msw << 16) | (lsw & 0xFFFF)
}  /* * Bitwise rotate a 32-bit number to the left. */
function rol(num, cnt)
{  return (num << cnt) | (num >>> (32 - cnt))
}  /* * These functions implement the four basic operations the algorithm uses. */
function cmn(q, a, b, x, s, t)
{  return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
}
function ff(a, b, c, d, x, s, t)
{  return cmn((b & c) | ((~b) & d), a, b, x, s, t)
}
function gg(a, b, c, d, x, s, t)
{  return cmn((b & d) | (c & (~d)), a, b, x, s, t)
}
function hh(a, b, c, d, x, s, t)
{  return cmn(b ^ c ^ d, a, b, x, s, t)
}
function ii(a, b, c, d, x, s, t)
{  return cmn(c ^ (b | (~d)), a, b, x, s, t)
}  /* * Calculate the MD5 of an array of little-endian words, producing an array * of little-endian words. */
function coreMD5(x)
{  var a = 1732584193  var b = -271733879  var c = -1732584194  var d = 271733878  for(var i = 0; i < x.length; i += 16)  {  var olda = a  var oldb = b  var oldc = c  var oldd = d  a = ff(a, b, c, d, x[i+ 0], 7 , -680876936)  d = ff(d, a, b, c, x[i+ 1], 12, -389564586)  c = ff(c, d, a, b, x[i+ 2], 17, 606105819)  b = ff(b, c, d, a, x[i+ 3], 22, -1044525330)  a = ff(a, b, c, d, x[i+ 4], 7 , -176418897)  d = ff(d, a, b, c, x[i+ 5], 12, 1200080426)  c = ff(c, d, a, b, x[i+ 6], 17, -1473231341)  b = ff(b, c, d, a, x[i+ 7], 22, -45705983)  a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416)  d = ff(d, a, b, c, x[i+ 9], 12, -1958414417)  c = ff(c, d, a, b, x[i+10], 17, -42063)  b = ff(b, c, d, a, x[i+11], 22, -1990404162)  a = ff(a, b, c, d, x[i+12], 7 , 1804603682)  d = ff(d, a, b, c, x[i+13], 12, -40341101)  c = ff(c, d, a, b, x[i+14], 17, -1502002290)  b = ff(b, c, d, a, x[i+15], 22, 1236535329)  a = gg(a, b, c, d, x[i+ 1], 5 , -165796510)  d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632)  c = gg(c, d, a, b, x[i+11], 14, 643717713)  b = gg(b, c, d, a, x[i+ 0], 20, -373897302)  a = gg(a, b, c, d, x[i+ 5], 5 , -701558691)  d = gg(d, a, b, c, x[i+10], 9 , 38016083)  c = gg(c, d, a, b, x[i+15], 14, -660478335)  b = gg(b, c, d, a, x[i+ 4], 20, -405537848)  a = gg(a, b, c, d, x[i+ 9], 5 , 568446438)  d = gg(d, a, b, c, x[i+14], 9 , -1019803690)  c = gg(c, d, a, b, x[i+ 3], 14, -187363961)  b = gg(b, c, d, a, x[i+ 8], 20, 1163531501)  a = gg(a, b, c, d, x[i+13], 5 , -1444681467)  d = gg(d, a, b, c, x[i+ 2], 9 , -51403784)  c = gg(c, d, a, b, x[i+ 7], 14, 1735328473)  b = gg(b, c, d, a, x[i+12], 20, -1926607734)  a = hh(a, b, c, d, x[i+ 5], 4 , -378558)  d = hh(d, a, b, c, x[i+ 8], 11, -2022574463)  c = hh(c, d, a, b, x[i+11], 16, 1839030562)  b = hh(b, c, d, a, x[i+14], 23, -35309556)  a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060)  d = hh(d, a, b, c, x[i+ 4], 11, 1272893353)  c = hh(c, d, a, b, x[i+ 7], 16, -155497632)  b = hh(b, c, d, a, x[i+10], 23, -1094730640)  a = hh(a, b, c, d, x[i+13], 4 , 681279174)  d = hh(d, a, b, c, x[i+ 0], 11, -358537222)  c = hh(c, d, a, b, x[i+ 3], 16, -722521979)  b = hh(b, c, d, a, x[i+ 6], 23, 76029189)  a = hh(a, b, c, d, x[i+ 9], 4 , -640364487)  d = hh(d, a, b, c, x[i+12], 11, -421815835)  c = hh(c, d, a, b, x[i+15], 16, 530742520)  b = hh(b, c, d, a, x[i+ 2], 23, -995338651)  a = ii(a, b, c, d, x[i+ 0], 6 , -198630844)  d = ii(d, a, b, c, x[i+ 7], 10, 1126891415)  c = ii(c, d, a, b, x[i+14], 15, -1416354905)  b = ii(b, c, d, a, x[i+ 5], 21, -57434055)  a = ii(a, b, c, d, x[i+12], 6 , 1700485571)  d = ii(d, a, b, c, x[i+ 3], 10, -1894986606)  c = ii(c, d, a, b, x[i+10], 15, -1051523)  b = ii(b, c, d, a, x[i+ 1], 21, -2054922799)  a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359)  d = ii(d, a, b, c, x[i+15], 10, -30611744)  c = ii(c, d, a, b, x[i+ 6], 15, -1560198380)  b = ii(b, c, d, a, x[i+13], 21, 1309151649)  a = ii(a, b, c, d, x[i+ 4], 6 , -145523070)  d = ii(d, a, b, c, x[i+11], 10, -1120210379)  c = ii(c, d, a, b, x[i+ 2], 15, 718787259)  b = ii(b, c, d, a, x[i+ 9], 21, -343485551)  a = safe_add(a, olda)  b = safe_add(b, oldb)  c = safe_add(c, oldc)  d = safe_add(d, oldd)  }  return [a, b, c, d]
}  /* * Convert an array of little-endian words to a hex string. */
function binl2hex(binarray)
{  var hex_tab = "0123456789abcdef"  var str = ""  for(var i = 0; i < binarray.length * 4; i++)  {  str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +  hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF)  }  return str
}  /* * Convert an array of little-endian words to a base64 encoded string. */
function binl2b64(binarray)
{  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"  var str = ""  for(var i = 0; i < binarray.length * 32; i += 6)  {  str += tab.charAt(((binarray[i>>5] << (i%32)) & 0x3F) |  ((binarray[i>>5+1] >> (32-i%32)) & 0x3F))  }  return str
}  /* * Convert an 8-bit character string to a sequence of 16-word blocks, stored * as an array, and append appropriate padding for MD4/5 calculation. * If any of the characters are >255, the high byte is silently ignored. */
function str2binl(str)
{  var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks  var blks = new Array(nblk * 16)  for(var i = 0; i < nblk * 16; i++) blks[i] = 0  for(var i = 0; i < str.length; i++)  blks[i>>2] |= (str.charCodeAt(i) & 0xFF) << ((i%4) * 8)  blks[i>>2] |= 0x80 << ((i%4) * 8)  blks[nblk*16-2] = str.length * 8  return blks
}  /* * Convert a wide-character string to a sequence of 16-word blocks, stored as * an array, and append appropriate padding for MD4/5 calculation. */
function strw2binl(str)
{  var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks  var blks = new Array(nblk * 16)  for(var i = 0; i < nblk * 16; i++) blks[i] = 0  for(var i = 0; i < str.length; i++)  blks[i>>1] |= str.charCodeAt(i) << ((i%2) * 16)  blks[i>>1] |= 0x80 << ((i%2) * 16)  blks[nblk*16-2] = str.length * 16  return blks
}  /* * External interface */
function hexMD5 (str) { return binl2hex(coreMD5( str2binl(str))) }
function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
function b64MD5 (str) { return binl2b64(coreMD5( str2binl(str))) }
function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
/* Backward compatibility */
function calcMD5(str) { return binl2hex(coreMD5( str2binl(str))) }
module.exports = {  hexMD5: hexMD5
}  

2、在引入的页面js

var utilMd5 = require('../../utils/md5.js')

3、在加密上

 let stringSignTemp = 'appId=' + '&nonceStr=' + NoceStr + '&package=' + `prepay_id=${PrepayId}` + '&signType=MD5&timeStamp=' + timeStamp + '&key='let paySign = utilMd5.hexMD5(stringSignTemp).toUpperCase()

注意: hexMd5: 是md5.js抛出的

            utilMd5 是当前页面JS引入的

微信小程序加密 MD5相关推荐

  1. 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

    微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...

  2. 微信小程序:MD5 加密

    微信小程序是基于 js 进行封装的,所以,本质上是 js 的 MD5 加密 一个问题是,我后台服务器用的是 Python,js 和 Python 会有 MD5 密文不一致的情况 具体参考:https: ...

  3. 微信小程序使用MD5加密

    在微信小程序开发中,使用到MD5加密(比如登录加密password). 具体实现方法: 首先在项目中找到utils文件,在该文件下新建一个js文件 md5.js 然后复制下面的代码到你的文件中 /* ...

  4. 解密微信小程序加密的微信运动数据(java)

    使用java springmvc对微信小程序获取到的加密微信运动数据进行解密 //解密微信运动数据@ResponseBody@RequestMapping(value = "getEncry ...

  5. 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)

    前言 CryptoJs是google推出的一款前段解密类库.功能强大,包含很多的前段解密算法. 一.google下载地址: 二次开发版本 google原版地址 二.常用方法 Testing webso ...

  6. 微信小程序 javascript MD5 支持汉字

    今天白天搞完RSA,晚上回来没啥 事,这破疫情真的把人快木乱了,又要封三天..特奶的,这样下去 ,不是我要被封而是我要快疯~~~~!!!!! 回到家,看着我的小棉袄在那里认真的学习,又看到我置满IT书 ...

  7. 解密微信小程序加密信息

    获取微信程序人员信息之后,会给一个加密字符串,这个时候,前端不太好解密,因为浪费性能,会请求后端解密,那么后端如何解密呢?demo来说话: 1.首先工具类 package com.XXX.member ...

  8. 微信小程序加密消息解密工具类

    开发者后台校验与解密开放数据 微信会对这些开放数据做签名和加密处理.开发者后台拿到开放数据后可以对数据进行校验签名和解密,来保证数据不被篡改. 签名校验以及数据加解密涉及用户的会话密钥 session ...

  9. 反编译微信小程序,win电脑解析获取微信小程序源码

    好不容易写的小程序然后忘记保存被删了怎么办?不要慌这里就教你怎么搞. 环境准备 1.node 环境准备 Node下载地址 安装后将nodejs设置为环境变量. 打开cmd,测试是否安装成功:在命令行输 ...

最新文章

  1. form表单提交,Servlet接收并读取Excel文件
  2. 借助Ant工具,实现快速开发
  3. jmeter 测试websocket接口(一)
  4. gridlayoutmanager 设置间距_不设置主灯的客厅应当如何保证较好的灯光分布?
  5. 008. 限制上传文件的大小
  6. Android 为控件设置阴影
  7. 消费者驱动的微服务契约测试套件Spring Cloud Contract
  8. Android入门学习4
  9. HashSet底层存储元素的源码分析
  10. python流程自动化_python selenium 自动化流程的一些总结与思考
  11. ipad键盘映射_如何在iPad上重新映射修饰键
  12. 百度联合清华发布国内首个基于AI实践的产业智能化白皮书
  13. SRCNN代码及注释
  14. 《解忧杂货店》读后感:路一直都在,进步就是幸福
  15. 爱快软路由在VMware上安装过程分享,基于多网卡的本机+带多机上网,考研计算机网络实战
  16. 【后端】--process information unavailable解决办法[详细版]
  17. 微软文件共享服务器进程,Windows Server“8”– 将服务器应用程序存储转移到 Windows 文件共享...
  18. winform中使用ReportViewer的时候,找不到报表数据面板.
  19. 计算机毕设(附源码)JAVA-SSM基于web的社团管理系统
  20. 语音相关的数据集-5个数据集

热门文章

  1. jieba库的安装与使用方法
  2. matlab非平稳信号小波和FFT去噪
  3. 微信小程序的登录界面实现
  4. 网络广播mms直播地址
  5. ikbc c87 Win键失灵/锁定
  6. 用户画像:标签化就是数据的抽象能力
  7. C++ 实现文件夹复制
  8. vue + prerender + html-webpack-plugin 打包商桥项目报错
  9. 数据结构与算法——左程云09
  10. html使表格位于页面的右下方,在 HTML 页面中,要显示如下图所示的表格,应在下方 HTML 代码的下划线处填写()。 table border=”1” trtd =”2” 性别 /...