usign.js 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. function Rc(n) {
  2. return null == n ? "" : pu(n)
  3. }
  4. function pu(n) {
  5. if ("string" == typeof n)
  6. return n;
  7. if (yh(n))
  8. return c(n, pu) + "";
  9. if (yc(n))
  10. return ps ? ps.call(n) : "";
  11. var t = n + "";
  12. return "0" == t && 1 / n == -Rn ? "-0" : t
  13. }
  14. function V(n) {
  15. return B(n) ? H(n) : p(n)
  16. }
  17. function B(n) {
  18. return undefined;
  19. }
  20. function p(n) {
  21. return n.split("")
  22. }
  23. function W(n, t) {
  24. for (var r = n.length; r-- && y(t, n[r], 0) > -1;)
  25. ;
  26. return r
  27. }
  28. function y(n, t, r) {
  29. return t === t ? q(n, t, r) : g(n, b, r)
  30. }
  31. function q(n, t, r) {
  32. for (var e = r - 1, u = n.length; ++e < u;)
  33. if (n[e] === t)
  34. return e;
  35. return -1
  36. }
  37. function Au(n, t, r) {
  38. var e = n.length;
  39. return r = r === undefined ? e : r,
  40. !t && r >= e ? n : fu(n, t, r)
  41. }
  42. function fu(n, t, r) {
  43. var e = -1
  44. , u = n.length;
  45. t < 0 && (t = -t > u ? 0 : u + t),
  46. r = r > u ? u : r,
  47. r < 0 && (r += u),
  48. u = t > r ? 0 : r - t >>> 0,
  49. t >>>= 0;
  50. for (var i = Array(u); ++e < u;)
  51. i[e] = n[e + t];
  52. return i
  53. }
  54. function xa(n, t, r) {
  55. if (n = Rc(n),
  56. n && (r || t === undefined))
  57. return n.replace(Wt, "");
  58. if (!n || !(t = pu(t)))
  59. return n;
  60. var e = V(n);
  61. return Au(e, 0, W(e, V(t)) + 1).join("")
  62. }
  63. const rr = {
  64. '00d8': function (e, t) {
  65. var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  66. , r = {
  67. rotl: function (e, t) {
  68. return e << t | e >>> 32 - t
  69. },
  70. rotr: function (e, t) {
  71. return e << 32 - t | e >>> t
  72. },
  73. endian: function (e) {
  74. if (e.constructor == Number)
  75. return 16711935 & r.rotl(e, 8) | 4278255360 & r.rotl(e, 24);
  76. for (var t = 0; t < e.length; t++)
  77. e[t] = r.endian(e[t]);
  78. return e
  79. },
  80. randomBytes: function (e) {
  81. for (var t = []; e > 0; e--)
  82. t.push(Math.floor(256 * Math.random()));
  83. return t
  84. },
  85. bytesToWords: function (e) {
  86. for (var t = [], r = 0, n = 0; r < e.length; r++,
  87. n += 8)
  88. t[n >>> 5] |= e[r] << 24 - n % 32;
  89. return t
  90. },
  91. wordsToBytes: function (e) {
  92. for (var t = [], r = 0; r < 32 * e.length; r += 8)
  93. t.push(e[r >>> 5] >>> 24 - r % 32 & 255);
  94. return t
  95. },
  96. bytesToHex: function (e) {
  97. for (var t = [], r = 0; r < e.length; r++)
  98. t.push((e[r] >>> 4).toString(16)),
  99. t.push((15 & e[r]).toString(16));
  100. return t.join("")
  101. },
  102. hexToBytes: function (e) {
  103. for (var t = [], r = 0; r < e.length; r += 2)
  104. t.push(parseInt(e.substr(r, 2), 16));
  105. return t
  106. },
  107. bytesToBase64: function (e) {
  108. for (var r = [], n = 0; n < e.length; n += 3)
  109. for (var i = e[n] << 16 | e[n + 1] << 8 | e[n + 2], o = 0; o < 4; o++)
  110. 8 * n + 6 * o <= 8 * e.length ? r.push(t.charAt(i >>> 6 * (3 - o) & 63)) : r.push("=");
  111. return r.join("")
  112. },
  113. base64ToBytes: function (e) {
  114. e = e.replace(/[^A-Z0-9+\/]/gi, "");
  115. for (var r = [], n = 0, i = 0; n < e.length; i = ++n % 4)
  116. 0 != i && r.push((t.indexOf(e.charAt(n - 1)) & Math.pow(2, -2 * i + 8) - 1) << 2 * i | t.indexOf(e.charAt(n)) >>> 6 - 2 * i);
  117. return r
  118. }
  119. };
  120. return r;
  121. },
  122. "9a63": function (e, t) {
  123. var r = {
  124. utf8: {
  125. stringToBytes: function (e) {
  126. return r.bin.stringToBytes(unescape(encodeURIComponent(e)))
  127. },
  128. bytesToString: function (e) {
  129. return decodeURIComponent(escape(r.bin.bytesToString(e)))
  130. }
  131. },
  132. bin: {
  133. stringToBytes: function (e) {
  134. for (var t = [], r = 0; r < e.length; r++)
  135. t.push(255 & e.charCodeAt(r));
  136. return t
  137. },
  138. bytesToString: function (e) {
  139. for (var t = [], r = 0; r < e.length; r++)
  140. t.push(String.fromCharCode(e[r]));
  141. return t.join("")
  142. }
  143. }
  144. };
  145. return r
  146. },
  147. "8349": function (e, t) {
  148. function r(e) {
  149. return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
  150. }
  151. return function (e) {
  152. return null != e && (r(e) || function (e) {
  153. return "function" == typeof e.readFloatLE && "function" == typeof e.slice && r(e.slice(0, 0))
  154. }(e) || !!e._isBuffer)
  155. }
  156. },
  157. }
  158. function a(e, r) {
  159. var t = rr["00d8"]()
  160. , n = rr["9a63"]().utf8
  161. , i = rr["8349"]
  162. , o = rr["9a63"]().bin
  163. e.constructor == String ? e = r && "binary" === r.encoding ? o.stringToBytes(e) : n.stringToBytes(e) : i(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || e.constructor === Uint8Array || (e = e.toString());
  164. for (var s = t.bytesToWords(e), u = 8 * e.length, c = 1732584193, f = -271733879, d = -1732584194, l = 271733878, h = 0; h < s.length; h++)
  165. s[h] = 16711935 & (s[h] << 8 | s[h] >>> 24) | 4278255360 & (s[h] << 24 | s[h] >>> 8);
  166. s[u >>> 5] |= 128 << u % 32,
  167. s[14 + (u + 64 >>> 9 << 4)] = u;
  168. var p = a._ff
  169. , b = a._gg
  170. , y = a._hh
  171. , m = a._ii;
  172. for (h = 0; h < s.length; h += 16) {
  173. var g = c
  174. , v = f
  175. , _ = d
  176. , w = l;
  177. c = p(c, f, d, l, s[h + 0], 7, -680876936),
  178. l = p(l, c, f, d, s[h + 1], 12, -389564586),
  179. d = p(d, l, c, f, s[h + 2], 17, 606105819),
  180. f = p(f, d, l, c, s[h + 3], 22, -1044525330),
  181. c = p(c, f, d, l, s[h + 4], 7, -176418897),
  182. l = p(l, c, f, d, s[h + 5], 12, 1200080426),
  183. d = p(d, l, c, f, s[h + 6], 17, -1473231341),
  184. f = p(f, d, l, c, s[h + 7], 22, -45705983),
  185. c = p(c, f, d, l, s[h + 8], 7, 1770035416),
  186. l = p(l, c, f, d, s[h + 9], 12, -1958414417),
  187. d = p(d, l, c, f, s[h + 10], 17, -42063),
  188. f = p(f, d, l, c, s[h + 11], 22, -1990404162),
  189. c = p(c, f, d, l, s[h + 12], 7, 1804603682),
  190. l = p(l, c, f, d, s[h + 13], 12, -40341101),
  191. d = p(d, l, c, f, s[h + 14], 17, -1502002290),
  192. c = b(c, f = p(f, d, l, c, s[h + 15], 22, 1236535329), d, l, s[h + 1], 5, -165796510),
  193. l = b(l, c, f, d, s[h + 6], 9, -1069501632),
  194. d = b(d, l, c, f, s[h + 11], 14, 643717713),
  195. f = b(f, d, l, c, s[h + 0], 20, -373897302),
  196. c = b(c, f, d, l, s[h + 5], 5, -701558691),
  197. l = b(l, c, f, d, s[h + 10], 9, 38016083),
  198. d = b(d, l, c, f, s[h + 15], 14, -660478335),
  199. f = b(f, d, l, c, s[h + 4], 20, -405537848),
  200. c = b(c, f, d, l, s[h + 9], 5, 568446438),
  201. l = b(l, c, f, d, s[h + 14], 9, -1019803690),
  202. d = b(d, l, c, f, s[h + 3], 14, -187363961),
  203. f = b(f, d, l, c, s[h + 8], 20, 1163531501),
  204. c = b(c, f, d, l, s[h + 13], 5, -1444681467),
  205. l = b(l, c, f, d, s[h + 2], 9, -51403784),
  206. d = b(d, l, c, f, s[h + 7], 14, 1735328473),
  207. c = y(c, f = b(f, d, l, c, s[h + 12], 20, -1926607734), d, l, s[h + 5], 4, -378558),
  208. l = y(l, c, f, d, s[h + 8], 11, -2022574463),
  209. d = y(d, l, c, f, s[h + 11], 16, 1839030562),
  210. f = y(f, d, l, c, s[h + 14], 23, -35309556),
  211. c = y(c, f, d, l, s[h + 1], 4, -1530992060),
  212. l = y(l, c, f, d, s[h + 4], 11, 1272893353),
  213. d = y(d, l, c, f, s[h + 7], 16, -155497632),
  214. f = y(f, d, l, c, s[h + 10], 23, -1094730640),
  215. c = y(c, f, d, l, s[h + 13], 4, 681279174),
  216. l = y(l, c, f, d, s[h + 0], 11, -358537222),
  217. d = y(d, l, c, f, s[h + 3], 16, -722521979),
  218. f = y(f, d, l, c, s[h + 6], 23, 76029189),
  219. c = y(c, f, d, l, s[h + 9], 4, -640364487),
  220. l = y(l, c, f, d, s[h + 12], 11, -421815835),
  221. d = y(d, l, c, f, s[h + 15], 16, 530742520),
  222. c = m(c, f = y(f, d, l, c, s[h + 2], 23, -995338651), d, l, s[h + 0], 6, -198630844),
  223. l = m(l, c, f, d, s[h + 7], 10, 1126891415),
  224. d = m(d, l, c, f, s[h + 14], 15, -1416354905),
  225. f = m(f, d, l, c, s[h + 5], 21, -57434055),
  226. c = m(c, f, d, l, s[h + 12], 6, 1700485571),
  227. l = m(l, c, f, d, s[h + 3], 10, -1894986606),
  228. d = m(d, l, c, f, s[h + 10], 15, -1051523),
  229. f = m(f, d, l, c, s[h + 1], 21, -2054922799),
  230. c = m(c, f, d, l, s[h + 8], 6, 1873313359),
  231. l = m(l, c, f, d, s[h + 15], 10, -30611744),
  232. d = m(d, l, c, f, s[h + 6], 15, -1560198380),
  233. f = m(f, d, l, c, s[h + 13], 21, 1309151649),
  234. c = m(c, f, d, l, s[h + 4], 6, -145523070),
  235. l = m(l, c, f, d, s[h + 11], 10, -1120210379),
  236. d = m(d, l, c, f, s[h + 2], 15, 718787259),
  237. f = m(f, d, l, c, s[h + 9], 21, -343485551),
  238. c = c + g >>> 0,
  239. f = f + v >>> 0,
  240. d = d + _ >>> 0,
  241. l = l + w >>> 0
  242. }
  243. return t.endian([c, f, d, l])
  244. };
  245. a._ff = function (e, t, r, n, i, o, a) {
  246. var s = e + (t & r | ~t & n) + (i >>> 0) + a;
  247. return (s << o | s >>> 32 - o) + t
  248. }
  249. ,
  250. a._gg = function (e, t, r, n, i, o, a) {
  251. var s = e + (t & n | r & ~n) + (i >>> 0) + a;
  252. return (s << o | s >>> 32 - o) + t
  253. }
  254. ,
  255. a._hh = function (e, t, r, n, i, o, a) {
  256. var s = e + (t ^ r ^ n) + (i >>> 0) + a;
  257. return (s << o | s >>> 32 - o) + t
  258. }
  259. ,
  260. a._ii = function (e, t, r, n, i, o, a) {
  261. var s = e + (r ^ (t | ~n)) + (i >>> 0) + a;
  262. return (s << o | s >>> 32 - o) + t
  263. }
  264. function n(e) {
  265. var t = rr["00d8"]()
  266. , n = rr["9a63"]().utf8
  267. , i = rr["8349"]()
  268. , o = rr["9a63"]().bin
  269. if (null == e)
  270. throw new Error("Illegal argument " + e);
  271. var n = t.wordsToBytes(a(e));
  272. return t.bytesToHex(n)
  273. }
  274. // 第一个参数是请求地址及path参数,第二个参数是payload参数
  275. function u_sign(e, t = undefined) {
  276. var r, o = "9SASji5OWnG41iRKiSvTJHlXHmRySRp1", a = "", s = t || {}, u = (e = e || "").split("?");
  277. if (u.length > 0 && (r = u[1]),
  278. r) {
  279. var c = r.split("&")
  280. , f = "";
  281. c.forEach((function (e) {
  282. var t = e.split("=");
  283. f += "".concat(t[0], "=").concat(encodeURI(t[1]), "&")
  284. }
  285. )),
  286. a = "".concat(xa(f, "&"), "&").concat(o)
  287. } else
  288. a = Object.keys(s).length > 0 ? "".concat(JSON.stringify(s), "&").concat(o) : "&".concat(o);
  289. return a = a.toLowerCase(),
  290. n(a)
  291. }
  292. // 示例:
  293. // u_sign('/youzy.dms.basiclib.api.career.job.hits.inc?jobCode=02030502')