const CryptoJS = require(
'crypto-js'
)
const base = require(
"./Crypted/Base64"
);
const byte = (x) => ((((x | 0) & 0xff) + 128) % 256) - 128;
Judgment_capitalization =
function
(input){
if
(
'A'
<=input &&input <=
'Z'
){
return
true
;
}
else
return
false
;
}
Determine_whether_to_lower =
function
(input){
if
(
'a'
<=input &&input <=
'z'
){
return
true
;
}
else
return
false
;
}
digit =
function
(input,radis) {
try
{
if
(!isNaN(parseInt(input))) {
if
(parseInt(input) < 10 && parseInt(input) > -1) {
return
parseInt(input) < parseInt(radis) ? parseInt(input) : -1;
}
}
}
catch
(err) {
}
try
{
if
(Judgment_capitalization(input)) {
return
input.charCodeAt(0) < radis +
'A'
.charCodeAt(0) - 10 ? input.charCodeAt(0) -
'A'
.charCodeAt(0) + 10 : -1;
}
}
catch
(err) {
}
try
{
if
(Determine_whether_to_lower(input)) {
return
input.charCodeAt(0) < radis +
'a'
.charCodeAt(0) - 10 ? input.charCodeAt(0) -
'a'
.charCodeAt(0) + 10 : -1;
}
}
catch
(err) {
}
}
b =
function
(paramString){
var
nlength = paramString.length;
var
arrofByte =
new
Int8Array(nlength/2);
for
(
var
i=0;i<nlength;i+=2){
arrofByte[i/2] = (byte)(((digit(paramString.charAt(i),16)<<4)+digit(paramString.charAt(i+1),16)));
}
return
(arrofByte);
}
function
byteToString(arr) {
if
(
typeof
arr ===
'string'
) {
return
arr;
}
var
str =
''
,
_arr = arr;
for
(
var
i = 0; i < _arr.length; i++) {
var
one = _arr[i].toString(2),
v = one.match(/^1+?(?=0)/);
if
(v && one.length == 8) {
var
bytesLength = v[0].length;
var
store = _arr[i].toString(2).slice(7 - bytesLength);
for
(
var
st = 1; st < bytesLength; st++) {
store += _arr[st + i].toString(2).slice(2);
}
str += String.fromCharCode(parseInt(store, 2));
i += bytesLength - 1;
}
else
{
str += String.fromCharCode(_arr[i]);
}
}
return
str;
}
function
stringToByte(str) {
var
len, c;
len = str.length;
var
bytes = [];
for
(
var
i = 0; i < len; i++) {
c = str.charCodeAt(i);
if
(c >= 0x010000 && c <= 0x10FFFF) {
bytes.push(((c >> 18) & 0x07) | 0xF0);
bytes.push(((c >> 12) & 0x3F) | 0x80);
bytes.push(((c >> 6) & 0x3F) | 0x80);
bytes.push((c & 0x3F) | 0x80);
}
else
if
(c >= 0x000800 && c <= 0x00FFFF) {
bytes.push(((c >> 12) & 0x0F) | 0xE0);
bytes.push(((c >> 6) & 0x3F) | 0x80);
bytes.push((c & 0x3F) | 0x80);
}
else
if
(c >= 0x000080 && c <= 0x0007FF) {
bytes.push(((c >> 6) & 0x1F) | 0xC0);
bytes.push((c & 0x3F) | 0x80);
}
else
{
bytes.push(c & 0xFF);
}
}
return
new
Int8Array(bytes);
}
getBase64decode =
function
(){
var
encode =
"5UJiFctbmgbDoLXmpL12mkno8HT4Lv8dlat8FxR2GOc="
;
let decrypted = atob(encode);
let base64decodedBytes =
new
Int8Array(atob(encode).split(
''
).map((char) => char.charCodeAt(0)));
const strbrr = String.fromCharCode.apply(
null
,base64decodedBytes);
console.log(strbrr);
return
base64decodedBytes;
}
deCryptedByAes_ECB =
function
(data,AESkey){
var
strdata = byteToString(data);
var
strAESKey = byteToString(AESkey)
var
key = CryptoJS.enc.Utf8.parse(AESkey);
var
decrypt = CryptoJS.AES.decrypt(data, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return
CryptoJS.enc.Utf8.stringify(decrypt).toString();
把加密的内容和秘钥转化为wordarry对象
}
const str = byteToString(b(
"8d127684cbc37c17616d806cf50473cc"
))
gettext =
function
() {
var
text = deCryptedByAes_ECB(b(
"8d127684cbc37c17616d806cf50473cc"
),getBase64decode(
"5UJiFctbmgbDoLXmpL12mkno8HT4Lv8dlat8FxR2GOc="
))
console.log(text);
}
console.log(gettext())