小程序模板网

微信小程序中远程调用接口及使用md5加密

2018-04-18 活寃业

作者:柯云,来自原文地址 
背景:使用微信小程序调用https接口,md5加密当前时间戳,然后再md5(时间戳的md5+约定好的key)生成token,来实现简单校验。服务端接口,判断时间戳是否在有效时间内,然后生成token对比传过来的token。

微信小程序使用的开发语言是js,网上找到js实现md5加密的代码,融合进小程序内使用

在utils目录下新建md5.js文件

 

				
  1. function safeAdd (x, y) {
  2. var lsw = (x & 0xFFFF) + (y & 0xFFFF)
  3. var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
  4. return (msw << 16) | (lsw & 0xFFFF)
  5. }
  6.  
  7. /*
  8. * Bitwise rotate a 32-bit number to the left.
  9. */
  10. function bitRotateLeft (num, cnt) {
  11. return (num << cnt) | (num >>> (32 - cnt))
  12. }
  13.  
  14. /*
  15. * These functions implement the four basic operations the algorithm uses.
  16. */
  17. function md5cmn (q, a, b, x, s, t) {
  18. return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
  19. }
  20. function md5ff (a, b, c, d, x, s, t) {
  21. return md5cmn((b & c) | ((~b) & d), a, b, x, s, t)
  22. }
  23. function md5gg (a, b, c, d, x, s, t) {
  24. return md5cmn((b & d) | (c & (~d)), a, b, x, s, t)
  25. }
  26. function md5hh (a, b, c, d, x, s, t) {
  27. return md5cmn(b ^ c ^ d, a, b, x, s, t)
  28. }
  29. function md5ii (a, b, c, d, x, s, t) {
  30. return md5cmn(c ^ (b | (~d)), a, b, x, s, t)
  31. }
  32.  
  33. /*
  34. * Calculate the MD5 of an array of little-endian words, and a bit length.
  35. */
  36. function binlMD5 (x, len) {
  37. /* append padding */
  38. x[len >> 5] |= 0x80 << (len % 32)
  39. x[(((len + 64) >>> 9) << 4) + 14] = len
  40.  
  41. var i
  42. var olda
  43. var oldb
  44. var oldc
  45. var oldd
  46. var a = 1732584193
  47. var b = -271733879
  48. var c = -1732584194
  49. var d = 271733878
  50.  
  51. for (i = 0; i < x.length; i += 16) {
  52. olda = a
  53. oldb = b
  54. oldc = c
  55. oldd = d
  56.  
  57. a = md5ff(a, b, c, d, x[i], 7, -680876936)
  58. d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
  59. c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
  60. b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
  61. a = md5ff(a,


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/23628.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询