Bladeren bron

落地页增加base64解密昵称

huangxiaojing 4 jaren geleden
bovenliggende
commit
d2f9b85c7b
2 gewijzigde bestanden met toevoegingen van 316 en 1 verwijderingen
  1. 313 0
      microserviceUserH5/static/js/vender/base64.js
  2. 3 1
      microserviceUserH5/vcloud/register.html

+ 313 - 0
microserviceUserH5/static/js/vender/base64.js

@@ -0,0 +1,313 @@
+//
+// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!
+//
+;(function(global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined'
+      ? module.exports = factory()
+      : typeof define === 'function' && define.amd
+      ? define(factory) :
+      // cf. https://github.com/dankogai/js-base64/issues/119
+      (function() {
+          // existing version for noConflict()
+          const _Base64 = global.Base64;
+          const gBase64 = factory();
+          gBase64.noConflict = () => {
+              global.Base64 = _Base64;
+              return gBase64;
+          };
+          if (global.Meteor) { // Meteor.js
+              Base64 = gBase64;
+          }
+          global.Base64 = gBase64;
+      })();
+}((typeof self !== 'undefined' ? self
+      : typeof window !== 'undefined' ? window
+      : typeof global !== 'undefined' ? global
+      : this
+), function() {
+  'use strict';
+
+/**
+*  base64.ts
+*
+*  Licensed under the BSD 3-Clause License.
+*    http://opensource.org/licenses/BSD-3-Clause
+*
+*  References:
+*    http://en.wikipedia.org/wiki/Base64
+*
+* @author Dan Kogai (https://github.com/dankogai)
+*/
+const version = '3.6.0';
+/**
+* @deprecated use lowercase `version`.
+*/
+const VERSION = version;
+const _hasatob = typeof atob === 'function';
+const _hasbtoa = typeof btoa === 'function';
+const _hasBuffer = typeof Buffer === 'function';
+const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
+const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
+const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+const b64chs = [...b64ch];
+const b64tab = ((a) => {
+  let tab = {};
+  a.forEach((c, i) => tab[c] = i);
+  return tab;
+})(b64chs);
+const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
+const _fromCC = String.fromCharCode.bind(String);
+const _U8Afrom = typeof Uint8Array.from === 'function'
+  ? Uint8Array.from.bind(Uint8Array)
+  : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));
+const _mkUriSafe = (src) => src
+  .replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_')
+  .replace(/=+$/m, '');
+const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
+/**
+* polyfill version of `btoa`
+*/
+const btoaPolyfill = (bin) => {
+  // console.log('polyfilled');
+  let u32, c0, c1, c2, asc = '';
+  const pad = bin.length % 3;
+  for (let i = 0; i < bin.length;) {
+      if ((c0 = bin.charCodeAt(i++)) > 255 ||
+          (c1 = bin.charCodeAt(i++)) > 255 ||
+          (c2 = bin.charCodeAt(i++)) > 255)
+          throw new TypeError('invalid character found');
+      u32 = (c0 << 16) | (c1 << 8) | c2;
+      asc += b64chs[u32 >> 18 & 63]
+          + b64chs[u32 >> 12 & 63]
+          + b64chs[u32 >> 6 & 63]
+          + b64chs[u32 & 63];
+  }
+  return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
+};
+/**
+* does what `window.btoa` of web browsers do.
+* @param {String} bin binary string
+* @returns {string} Base64-encoded string
+*/
+const _btoa = _hasbtoa ? (bin) => btoa(bin)
+  : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
+      : btoaPolyfill;
+const _fromUint8Array = _hasBuffer
+  ? (u8a) => Buffer.from(u8a).toString('base64')
+  : (u8a) => {
+      // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
+      const maxargs = 0x1000;
+      let strs = [];
+      for (let i = 0, l = u8a.length; i < l; i += maxargs) {
+          strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
+      }
+      return _btoa(strs.join(''));
+  };
+/**
+* converts a Uint8Array to a Base64 string.
+* @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
+* @returns {string} Base64 string
+*/
+const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
+// This trick is found broken https://github.com/dankogai/js-base64/issues/130
+// const utob = (src: string) => unescape(encodeURIComponent(src));
+// reverting good old fationed regexp
+const cb_utob = (c) => {
+  if (c.length < 2) {
+      var cc = c.charCodeAt(0);
+      return cc < 0x80 ? c
+          : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
+              + _fromCC(0x80 | (cc & 0x3f)))
+              : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
+                  + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
+                  + _fromCC(0x80 | (cc & 0x3f)));
+  }
+  else {
+      var cc = 0x10000
+          + (c.charCodeAt(0) - 0xD800) * 0x400
+          + (c.charCodeAt(1) - 0xDC00);
+      return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
+          + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
+          + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
+          + _fromCC(0x80 | (cc & 0x3f)));
+  }
+};
+const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
+/**
+* @deprecated should have been internal use only.
+* @param {string} src UTF-8 string
+* @returns {string} UTF-16 string
+*/
+const utob = (u) => u.replace(re_utob, cb_utob);
+//
+const _encode = _hasBuffer
+  ? (s) => Buffer.from(s, 'utf8').toString('base64')
+  : _TE
+      ? (s) => _fromUint8Array(_TE.encode(s))
+      : (s) => _btoa(utob(s));
+/**
+* converts a UTF-8-encoded string to a Base64 string.
+* @param {boolean} [urlsafe] if `true` make the result URL-safe
+* @returns {string} Base64 string
+*/
+const encode = (src, urlsafe = false) => urlsafe
+  ? _mkUriSafe(_encode(src))
+  : _encode(src);
+/**
+* converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
+* @returns {string} Base64 string
+*/
+const encodeURI = (src) => encode(src, true);
+// This trick is found broken https://github.com/dankogai/js-base64/issues/130
+// const btou = (src: string) => decodeURIComponent(escape(src));
+// reverting good old fationed regexp
+const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
+const cb_btou = (cccc) => {
+  switch (cccc.length) {
+      case 4:
+          var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
+              | ((0x3f & cccc.charCodeAt(1)) << 12)
+              | ((0x3f & cccc.charCodeAt(2)) << 6)
+              | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
+          return (_fromCC((offset >>> 10) + 0xD800)
+              + _fromCC((offset & 0x3FF) + 0xDC00));
+      case 3:
+          return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
+              | ((0x3f & cccc.charCodeAt(1)) << 6)
+              | (0x3f & cccc.charCodeAt(2)));
+      default:
+          return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
+              | (0x3f & cccc.charCodeAt(1)));
+  }
+};
+/**
+* @deprecated should have been internal use only.
+* @param {string} src UTF-16 string
+* @returns {string} UTF-8 string
+*/
+const btou = (b) => b.replace(re_btou, cb_btou);
+/**
+* polyfill version of `atob`
+*/
+const atobPolyfill = (asc) => {
+  // console.log('polyfilled');
+  asc = asc.replace(/\s+/g, '');
+  if (!b64re.test(asc))
+      throw new TypeError('malformed base64.');
+  asc += '=='.slice(2 - (asc.length & 3));
+  let u24, bin = '', r1, r2;
+  for (let i = 0; i < asc.length;) {
+      u24 = b64tab[asc.charAt(i++)] << 18
+          | b64tab[asc.charAt(i++)] << 12
+          | (r1 = b64tab[asc.charAt(i++)]) << 6
+          | (r2 = b64tab[asc.charAt(i++)]);
+      bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
+          : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
+              : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
+  }
+  return bin;
+};
+/**
+* does what `window.atob` of web browsers do.
+* @param {String} asc Base64-encoded string
+* @returns {string} binary string
+*/
+const _atob = _hasatob ? (asc) => atob(_tidyB64(asc))
+  : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
+      : atobPolyfill;
+//
+const _toUint8Array = _hasBuffer
+  ? (a) => _U8Afrom(Buffer.from(a, 'base64'))
+  : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));
+/**
+* converts a Base64 string to a Uint8Array.
+*/
+const toUint8Array = (a) => _toUint8Array(_unURI(a));
+//
+const _decode = _hasBuffer
+  ? (a) => Buffer.from(a, 'base64').toString('utf8')
+  : _TD
+      ? (a) => _TD.decode(_toUint8Array(a))
+      : (a) => btou(_atob(a));
+const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
+/**
+* converts a Base64 string to a UTF-8 string.
+* @param {String} src Base64 string.  Both normal and URL-safe are supported
+* @returns {string} UTF-8 string
+*/
+const decode = (src) => _decode(_unURI(src));
+/**
+* check if a value is a valid Base64 string
+* @param {String} src a value to check
+*/
+const isValid = (src) => {
+  if (typeof src !== 'string')
+      return false;
+  const s = src.replace(/\s+/g, '').replace(/=+$/, '');
+  return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
+};
+//
+const _noEnum = (v) => {
+  return {
+      value: v, enumerable: false, writable: true, configurable: true
+  };
+};
+/**
+* extend String.prototype with relevant methods
+*/
+const extendString = function () {
+  const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));
+  _add('fromBase64', function () { return decode(this); });
+  _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
+  _add('toBase64URI', function () { return encode(this, true); });
+  _add('toBase64URL', function () { return encode(this, true); });
+  _add('toUint8Array', function () { return toUint8Array(this); });
+};
+/**
+* extend Uint8Array.prototype with relevant methods
+*/
+const extendUint8Array = function () {
+  const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));
+  _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
+  _add('toBase64URI', function () { return fromUint8Array(this, true); });
+  _add('toBase64URL', function () { return fromUint8Array(this, true); });
+};
+/**
+* extend Builtin prototypes with relevant methods
+*/
+const extendBuiltins = () => {
+  extendString();
+  extendUint8Array();
+};
+const gBase64 = {
+  version: version,
+  VERSION: VERSION,
+  atob: _atob,
+  atobPolyfill: atobPolyfill,
+  btoa: _btoa,
+  btoaPolyfill: btoaPolyfill,
+  fromBase64: decode,
+  toBase64: encode,
+  encode: encode,
+  encodeURI: encodeURI,
+  encodeURL: encodeURI,
+  utob: utob,
+  btou: btou,
+  decode: decode,
+  isValid: isValid,
+  fromUint8Array: fromUint8Array,
+  toUint8Array: toUint8Array,
+  extendString: extendString,
+  extendUint8Array: extendUint8Array,
+  extendBuiltins: extendBuiltins,
+};
+
+  //
+  // export Base64 to the namespace
+  //
+  // ES5 is yet to have Object.assign() that may make transpilers unhappy.
+  // gBase64.Base64 = Object.assign({}, gBase64);
+  gBase64.Base64 = {};
+  Object.keys(gBase64).forEach(k => gBase64.Base64[k] = gBase64[k]);
+  return gBase64;
+}));

+ 3 - 1
microserviceUserH5/vcloud/register.html

@@ -15,6 +15,7 @@
 	<script src="../static/js/vender/toastr/toastr.min.js"></script>
 	<script src="../static/js/vender/config.js"></script>
 	<script src="../static/js/vender/crypto-js.js"></script>
+	<script src="../static/js/vender/base64.js"></script>
 	<script>
 		toastr.options.positionClass = 'toast-center-center';
 	</script>
@@ -76,6 +77,7 @@
 
 		function getUserInfo() {
 			var userName = parameters['username'] ? parameters['username'] : null
+			userName = Base64.decode(userName)
 			$.ajax({
 				url: baseUrl + '/api/user/v3/invitation/getNickname?username=' + userName,
 				type: 'get',
@@ -125,7 +127,7 @@
 			return encrypted.toString()
   	}
 
-		getUserInfo()
+		getUserInfo();
 
 		function handleClick() {
 			var time = new Date().getTime()