开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1312|回复: 9
收起左侧

[已解决] js 加密

 关闭 [复制链接]
结帖率:98% (46/47)
发表于 2020-1-15 18:45:05 | 显示全部楼层 |阅读模式   江苏省徐州市
20精币
能帮吧这段js 放在易语言中执行 输入 abc123  加密结果 WzE0MiwxODYsMTI1LDE1NiwxMjcsMTgxLDEyMSwyMjRd
export function encryption(str){ //加密
    var flag=false;
    // str = JSON.stringify(str)
    var base64_encode =function(input) {
        var rv;
        rv = encodeURIComponent(input);
        rv = unescape(rv);
        rv = window.btoa(rv);
        return rv;
    }
    // var token = hex_md5('hcht_2016_kylin');
    var token ="5c322a0f381b67359f6c195453d84052";
    var str = base64_encode(str);
    var len = str.length;
    var data = new Array();
    var index = 0;
    for (var i = 0; i < len; i++) {
        if (i > token.length - 1) {
            index = token.length - 1;
        } else {
            index = i;
        }
        data[i] = str[i].charCodeAt() + token[index].charCodeAt();
    }
    data = base64_encode('['+data.join(",")+']');
    if(flag){
                var str2 = '{"data":"' + data + '"}';
                var str3 ={
                    json:str2
                }
                return str3;
        }else{
                return data
        }
}




回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (4/4)
发表于 2020-1-15 18:45:06 | 显示全部楼层   广西壮族自治区南宁市
QQ图片20200115194334.png

js代码.txt

3.83 KB, 下载次数: 4

回复

使用道具 举报

结帖率:90% (18/20)
发表于 2020-1-15 19:25:06 | 显示全部楼层   江西省赣州市
浏览器运行正常。应该是对象没有声明啥的。我也不是很懂
回复

使用道具 举报

结帖率:67% (6/9)
发表于 2020-1-15 19:31:52 | 显示全部楼层   贵州省黔南布依族苗族自治州
//encryption('abc123')调用  window={};  function encryption(str){ //加密     var flag=false;      // str = JSON.stringify(str)      var base64_encode =function(input) {          var rv;         rv =B64_Encrypt(input);                    return rv;      }      // var token = hex_md5('hcht_2016_kylin');      var token ="5c322a0f381b67359f6c195453d84052";      var str = base64_encode(str);      var len = str.length;      var data = new Array();      var index = 0;      for (var i = 0; i < len; i++) {          if (i > token.length - 1) {              index = token.length - 1;          } else {              index = i;          }          data[i] = str.charCodeAt(i) + token.charCodeAt(index);      }      data = base64_encode('['+data.join(",")+']');      if(flag){                  var str2 = '{"data":"' + data + '"}';                  var str3 ={                      json:str2                  }                  return str3;          }else{                  return data          }  }    var CryptoJS = CryptoJS || (function (Math, undefined) {     var C = {};     var C_lib = C.lib = {};     var Base = C_lib.Base = (function () {         function F() {};         return {             extend: function (overrides) {                 F.prototype = this;                 var subtype = new F();                 if (overrides) {                     subtype.mixIn(overrides);                 }                 if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {                     subtype.init = function () {                         subtype.$super.init.apply(this, arguments);                     };                 }                 subtype.init.prototype = subtype;                 subtype.$super = this;                 return subtype;             }, create: function () {                 var instance = this.extend();                 instance.init.apply(instance, arguments);                 return instance;             }, init: function () {}, mixIn: function (properties) {                 for (var propertyName in properties) {                     if (properties.hasOwnProperty(propertyName)) {                         this[propertyName] = properties[propertyName];                     }                 }                 if (properties.hasOwnProperty('toString')) {                     this.toString = properties.toString;                 }             }, clone: function () {                 return this.init.prototype.extend(this);             }         };     }());     var WordArray = C_lib.WordArray = Base.extend({         init: function (words, sigBytes) {             words = this.words = words || [];             if (sigBytes != undefined) {                 this.sigBytes = sigBytes;             } else {                 this.sigBytes = words.length * 4;             }         }, toString: function (encoder) {             return (encoder || Hex).stringify(this);         }, concat: function (wordArray) {             var thisWords = this.words;             var thatWords = wordArray.words;             var thisSigBytes = this.sigBytes;             var thatSigBytes = wordArray.sigBytes;             this.clamp();             if (thisSigBytes % 4) {                 for (var i = 0; i < thatSigBytes; i++) {                     var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;                     thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);                 }             } else if (thatWords.length > 0xffff) {                 for (var i = 0; i < thatSigBytes; i += 4) {                     thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];                 }             } else {                 thisWords.push.apply(thisWords, thatWords);             }             this.sigBytes += thatSigBytes;             return this;         }, clamp: function () {             var words = this.words;             var sigBytes = this.sigBytes;             words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);             words.length = Math.ceil(sigBytes / 4);         }, clone: function () {             var clone = Base.clone.call(this);             clone.words = this.words.slice(0);             return clone;         }, random: function (nBytes) {             var words = [];             var r = (function (m_w) {                 var m_w = m_w;                 var m_z = 0x3ade68b1;                 var mask = 0xffffffff;                 return function () {                     m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;                     m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;                     var result = ((m_z << 0x10) + m_w) & mask;                     result /= 0x100000000;                     result += 0.5;                     return result * (Math.random() > .5 ? 1 : -1);                 }             });             for (var i = 0, rcache; i < nBytes; i += 4) {                 var _r = r((rcache || Math.random()) * 0x100000000);                 rcache = _r() * 0x3ade67b7;                 words.push((_r() * 0x100000000) | 0);             }             return new WordArray.init(words, nBytes);         }     });     var C_enc = C.enc = {};     var Hex = C_enc.Hex = {         stringify: function (wordArray) {             var words = wordArray.words;             var sigBytes = wordArray.sigBytes;             var hexChars = [];             for (var i = 0; i < sigBytes; i++) {                 var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;                 hexChars.push((bite >>> 4).toString(16));                 hexChars.push((bite & 0x0f).toString(16));             }             return hexChars.join('');         }, parse: function (hexStr) {             var hexStrLength = hexStr.length;             var words = [];             for (var i = 0; i < hexStrLength; i += 2) {                 words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);             }             return new WordArray.init(words, hexStrLength / 2);         }     };     var Latin1 = C_enc.Latin1 = {         stringify: function (wordArray) {             var words = wordArray.words;             var sigBytes = wordArray.sigBytes;             var latin1Chars = [];             for (var i = 0; i < sigBytes; i++) {                 var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;                 latin1Chars.push(String.fromCharCode(bite));             }             return latin1Chars.join('');         }, parse: function (latin1Str) {             var latin1StrLength = latin1Str.length;             var words = [];             for (var i = 0; i < latin1StrLength; i++) {                 words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);             }             return new WordArray.init(words, latin1StrLength);         }     };     var Utf8 = C_enc.Utf8 = {         stringify: function (wordArray) {             try {                 return decodeURIComponent(escape(Latin1.stringify(wordArray)));             } catch (e) {                 throw new Error('Malformed UTF-8 data');             }         }, parse: function (utf8Str) {             return Latin1.parse(unescape(encodeURIComponent(utf8Str)));         }     };     var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({         reset: function () {             this._data = new WordArray.init();             this._nDataBytes = 0;         }, _append: function (data) {             if (typeof data == 'string') {                 data = Utf8.parse(data);             }             this._data.concat(data);             this._nDataBytes += data.sigBytes;         }, _process: function (doFlush) {             var data = this._data;             var dataWords = data.words;             var dataSigBytes = data.sigBytes;             var blockSize = this.blockSize;             var blockSizeBytes = blockSize * 4;             var nBlocksReady = dataSigBytes / blockSizeBytes;             if (doFlush) {                 nBlocksReady = Math.ceil(nBlocksReady);             } else {                 nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);             }             var nWordsReady = nBlocksReady * blockSize;             var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);             if (nWordsReady) {                 for (var offset = 0; offset < nWordsReady; offset += blockSize) {                     this._doProcessBlock(dataWords, offset);                 }                 var processedWords = dataWords.splice(0, nWordsReady);                 data.sigBytes -= nBytesReady;             }             return new WordArray.init(processedWords, nBytesReady);         }, clone: function () {             var clone = Base.clone.call(this);             clone._data = this._data.clone();             return clone;         }, _minBufferSize: 0     });     var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({         cfg: Base.extend(),         init: function (cfg) {             this.cfg = this.cfg.extend(cfg);             this.reset();         }, reset: function () {             BufferedBlockAlgorithm.reset.call(this);             this._doReset();         }, update: function (messageUpdate) {             this._append(messageUpdate);             this._process();             return this;         }, finalize: function (messageUpdate) {             if (messageUpdate) {                 this._append(messageUpdate);             }             var hash = this._doFinalize();             return hash;         }, blockSize: 512 / 32,         _createHelper: function (hasher) {             return function (message, cfg) {                 return new hasher.init(cfg).finalize(message);             };         }, _createHmacHelper: function (hasher) {             return function (message, key) {                 return new C_algo.HMAC.init(hasher, key).finalize(message);             };         }     });     var C_algo = C.algo = {};     return C; }(Math));  (function () {     var C = CryptoJS;     var C_lib = C.lib;     var WordArray = C_lib.WordArray;     var C_enc = C.enc;     var Base64 = C_enc.Base64 = {         stringify: function (wordArray) {             var words = wordArray.words;             var sigBytes = wordArray.sigBytes;             var map = this._map;             wordArray.clamp();             var base64Chars = [];             for (var i = 0; i < sigBytes; i += 3) {                 var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;                 var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;                 var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;                 var triplet = (byte1 << 16) | (byte2 << 8) | byte3;                 for (var j = 0;                     (j < 4) && (i + j * 0.75 < sigBytes); j++) {                     base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));                 }             }             var paddingChar = map.charAt(64);             if (paddingChar) {                 while (base64Chars.length % 4) {                     base64Chars.push(paddingChar);                 }             }             return base64Chars.join('');         }, parse: function (base64Str) {             var base64StrLength = base64Str.length;             var map = this._map;             var reverseMap = this._reverseMap;             if (!reverseMap) {                 reverseMap = this._reverseMap = [];                 for (var j = 0; j < map.length; j++) {                     reverseMap[map.charCodeAt(j)] = j;                 }             }             var paddingChar = map.charAt(64);             if (paddingChar) {                 var paddingIndex = base64Str.indexOf(paddingChar);                 if (paddingIndex !== -1) {                     base64StrLength = paddingIndex;                 }             }             return parseLoop(base64Str, base64StrLength, reverseMap);         }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='     };     function parseLoop(base64Str, base64StrLength, reverseMap) {         var words = [];         var nBytes = 0;         for (var i = 0; i < base64StrLength; i++) {             if (i % 4) {                 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);                 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);                 words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);                 nBytes++;             }         }         return WordArray.create(words, nBytes);     } }());  function B64_Encrypt(word) {     var src = CryptoJS.enc.Utf8.parse(word);     return CryptoJS.enc.Base64.stringify(src); }  function B64_Decrypt(word) {     var src = CryptoJS.enc.Base64.parse(word);     return CryptoJS.enc.Utf8.stringify(src); }
回复

使用道具 举报

结帖率:67% (6/9)
发表于 2020-1-15 19:33:48 | 显示全部楼层   贵州省黔南布依族苗族自治州
encryption('abc123')调用

js.txt

12.86 KB, 下载次数: 0

回复

使用道具 举报

结帖率:100% (3/3)
发表于 2020-1-15 19:41:03 | 显示全部楼层   山东省滨州市
aa.e (834.85 KB, 下载次数: 5)
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2020-1-15 19:43:57 | 显示全部楼层   广西壮族自治区南宁市

function encryption(str){ //加密
    var flag=false;
    // str = JSON.stringify(str)
    // var token = hex_md5('hcht_2016_kylin');
    var token ="5c322a0f381b67359f6c195453d84052".split("");
    var str = encode64(str).split("");;
    var len = str.length;
    var data = new Array();
    var index = 0;
    for (var i = 0; i < len; i++) {
        if (i > token.length - 1) {
            index = token.length - 1;
        } else {
            index = i;
        }                                                                                                                                                                                                                                                                               
        data[i] = str[i].charCodeAt(0) + token[index].charCodeAt(0);
    }
    data = encode64('['+data.join(",")+']');
    if(flag){
                var str2 = '{"data":"' + data + '"}';
                var str3 ={
                    json:str2
                }
                return str3;
        }else{
                return data
        }
}



var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)
+ keyStr.charAt(enc3) + keyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
}
//将Base64编码字符串转换成Ansi编码的字符串
function decode64(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;


if (input.length % 4 != 0) {
return "";
}
var base64test = /[^A-Za-z0-9\+\/\=]/g;
if (base64test.exec(input)) {
return "";
}
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;


output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output += String.fromCharCode(chr2);
}
if (enc4 != 64) {
output += String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
}


function utf16to8(str) {
  var out, i, len, c;


  out = "";
  len = str.length;
  for(i = 0; i < len; i++) {
    c = str.charCodeAt(i);
    if ((c >= 0x0001) && (c <= 0x007F)) {
      out += str.charAt(i);
    } else if (c > 0x07FF) {
      out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
      out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
      out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
    } else {
      out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
      out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
    }
  }
  return out;
}


function utf8to16(str) {
  var out, i, len, c;
  var char2, char3;


  out = "";
  len = str.length;
  i = 0;
  while(i < len) {
    c = str.charCodeAt(i++);
    switch(c >> 4) {
      case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
        // 0xxxxxxx
        out += str.charAt(i-1);
        break;
      case 12: case 13:
        // 110x xxxx   10xx xxxx
        char2 = str.charCodeAt(i++);
        out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
        break;
      case 14:
        // 1110 xxxx  10xx xxxx  10xx xxxx
        char2 = str.charCodeAt(i++);
        char3 = str.charCodeAt(i++);
        out += String.fromCharCode(((c & 0x0F) << 12) |
        ((char2 & 0x3F) << 6) |
        ((char3 & 0x3F) << 0));
        break;
    }
  }
  return out;
}




回复

使用道具 举报

结帖率:100% (31/31)

签到天数: 1 天

发表于 2020-1-15 19:44:36 | 显示全部楼层   香港特别行政区*
  1. window = this;
  2. PADCHAR = "=", ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", getbyte = function(t, e) {
  3.     var i = t.charCodeAt(e);
  4.     if (i > 255) throw "INVALID_CHARACTER_ERR: DOM Exception 5";
  5.     return i
  6. }
  7. window.btoa = function(t) {
  8.     if (1 != arguments.length) throw "SyntaxError: Not enough arguments";
  9.     var e, i, n = PADCHAR,
  10.         o = ALPHA,
  11.         p = getbyte,
  12.         r = [];
  13.     t = "" + t;
  14.     var s = t.length - t.length % 3;
  15.     if (0 == t.length) return t;
  16.     for (e = 0; e < s; e += 3)
  17.     i = p(t, e) << 16 | p(t, e + 1) << 8 | p(t, e + 2), r.push(o.charAt(i >> 18)), r.push(o.charAt(i >> 12 & 63)), r.push(o.charAt(i >> 6 & 63)), r.push(o.charAt(63 & i));
  18.     switch (t.length - s) {
  19.         case 1:
  20.             i = p(t, e) << 16, r.push(o.charAt(i >> 18) + o.charAt(i >> 12 & 63) + n + n);
  21.             break;
  22.         case 2:
  23.             i = p(t, e) << 16 | p(t, e + 1) << 8, r.push(o.charAt(i >> 18) + o.charAt(i >> 12 & 63) + o.charAt(i >> 6 & 63) + n)
  24.     }
  25.     return r.join("")
  26. }

  27. function encryption(str) {
  28.     var flag = false;
  29.     var base64_encode = function(input) {
  30.         var rv;
  31.         rv = encodeURIComponent(input);
  32.         rv = unescape(rv);
  33.         rv = window.btoa(rv);
  34.         return rv;
  35.     }
  36.     var token = "5c322a0f381b67359f6c195453d84052".split('');
  37.     var str = base64_encode(str).split('');
  38.     var len = str.length;
  39.     var data = new Array();
  40.     var index = 0;
  41.     for (var i = 0; i < len; i++) {
  42.         if (i > token.length - 1) {
  43.             index = token.length - 1;
  44.         } else {
  45.             index = i;
  46.         }
  47.         data[i] = str[i].charCodeAt() + token[index].charCodeAt();
  48.     }
  49.     data = base64_encode('[' + data.join(",") + ']');
  50.     if (flag) {
  51.         var str2 = '{"data":"' + data + '"}';
  52.         var str3 = {
  53.             json: str2
  54.         }
  55.         return str3;
  56.     } else {
  57.         return data
  58.     }
  59. }
复制代码
回复

使用道具 举报

结帖率:100% (31/31)

签到天数: 1 天

发表于 2020-1-15 19:45:14 | 显示全部楼层   香港特别行政区*
我给你发了很简单的就是扣一个 btoa放进去就完事了!
回复

使用道具 举报

结帖率:100% (31/31)

签到天数: 1 天

发表于 2020-1-15 19:45:32 | 显示全部楼层   香港特别行政区*
代码在审核中!~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表