字母右移位16位加密
//字母右移位16位加密
encrypCode(s) {
if(!s || s.length === 0) {return}
let slist = s.split('')
let AREA = 16
// A 65 91
// a 97 123
let code =''
let result = slist.map(item => {
if (/[a-z]{1}/.test(item)) {
code = (item.charCodeAt(0) + AREA) >= 123 ? 'a'.charCodeAt(0) + (item.charCodeAt(0) + AREA) % 123 : (item.charCodeAt(0) + AREA)
return String.fromCharCode(code)
}
if (/[A-Z]{1}/.test(item)) {
code = (item.charCodeAt(0) + AREA) >= 91 ? 'A'.charCodeAt(0) + (item.charCodeAt(0) + AREA) % 91 : (item.charCodeAt(0) + AREA)
return String.fromCharCode(code)
}
return item
})
return result.join('')
},
字母移位解密
//字母移位16位解密
deCode(s) {
if(!s || s.length === 0) {return}
let slist = s.split('')
let AREA = 16
// A 65 91
// a 97 123
let code =''
let result = slist.map(item => {
if (/[a-z]{1}/.test(item)) {
code = (item.charCodeAt(0) - AREA) < 97 ? item.charCodeAt(0) + 10 : (item.charCodeAt(0) - AREA)
return String.fromCharCode(code)
}
if (/[A-Z]{1}/.test(item)) {
code = (item.charCodeAt(0) - AREA) < 65 ? item.charCodeAt(0) + 10 : (item.charCodeAt(0) - AREA)
return String.fromCharCode(code)
}
return item
})
return result.join('')
},
}
Base64加解密
下文是存放在util文件夹下,将Base64加密封装成通用方法,使用时直接进行import
// 创建Base64对象
var Base64 = {
_keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
encode: function(e) {
var t = '';
var n, r, i, s, o, u, a;
var f = 0;
e = Base64._utf8_encode(e);
while (f < e.length) {
n = e.charCodeAt(f++);
r = e.charCodeAt(f++);
i = e.charCodeAt(f++);
s = n >> 2;
o = ((n & 3) << 4) | (r >> 4);
u = ((r & 15) << 2) | (i >> 6);
a = i & 63;
if (isNaN(r)) {
u = a = 64;
} else if (isNaN(i)) {
a = 64;
}
t =
t +
this._keyStr.charAt(s) +
this._keyStr.charAt(o) +
this._keyStr.charAt(u) +
this._keyStr.charAt(a);
}
return t;
},
decode: function(e) {
var t = '';
var n, r, i;
var s, o, u, a;
var f = 0;
e = e.replace(/[^A-Za-z0-9+/=]/g, '');
while (f < e.length) {
s = this._keyStr.indexOf(e.charAt(f++));
o = this._keyStr.indexOf(e.charAt(f++));
u = this._keyStr.indexOf(e.charAt(f++));
a = this._keyStr.indexOf(e.charAt(f++));
n = (s << 2) | (o >> 4);
r = ((o & 15) << 4) | (u >> 2);
i = ((u & 3) << 6) | a;
t = t + String.fromCharCode(n);
if (u != 64) {
t = t + String.fromCharCode(r);
}
if (a != 64) {
t = t + String.fromCharCode(i);
}
}
t = Base64._utf8_decode(t);
return t;
},
_utf8_encode: function(e) {
e = e.replace(/rn/g, 'n');
var t = '';
for (var n = 0; n < e.length; n++) {
var r = e.charCodeAt(n);
if (r < 128) {
t += String.fromCharCode(r);
} else if (r > 127 && r < 2048) {
t += String.fromCharCode((r >> 6) | 192);
t += String.fromCharCode((r & 63) | 128);
} else {
t += String.fromCharCode((r >> 12) | 224);
t += String.fromCharCode(((r >> 6) & 63) | 128);
t += String.fromCharCode((r & 63) | 128);
}
}
return t;
},
_utf8_decode: function(e) {
var t = '';
var n = 0;
var r = (c1 = c2 = 0);
while (n < e.length) {
r = e.charCodeAt(n);
if (r < 128) {
t += String.fromCharCode(r);
n++;
} else if (r > 191 && r < 224) {
c2 = e.charCodeAt(n + 1);
t += String.fromCharCode(((r & 31) << 6) | (c2 & 63));
n += 2;
} else {
c2 = e.charCodeAt(n + 1);
c3 = e.charCodeAt(n + 2);
t += String.fromCharCode(((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
n += 3;
}
}
return t;
}
};
// 定义字符串
var string = str;
// 加密
var encodedString = Base64.encode(string);
console.log(encodedString); // 输出: "SGVsbG8gV29ybGQh"
// 解密
var decodedString = Base64.decode(encodedString);
console.log(decodedString); // 输出: "Hello World!
export default Base64;