精易论坛

标题: java代码转换成js [打印本页]

作者: valjxf    时间: 2023-5-27 22:08
标题: java代码转换成js
求把这段java代码转换成可以运行的js代码

ep.txt

3.14 KB, 下载次数: 18, 下载积分: 精币 -2 枚


作者: dingli123    时间: 2023-5-27 22:20
。。。。。看看怎么样

Untitled-1.txt

1.96 KB, 下载次数: 9, 下载积分: 精币 -2 枚


作者: BLACKPINK    时间: 2023-5-27 22:23
这有点麻烦呀  
作者: valjxf    时间: 2023-5-27 22:25
dingli123 发表于 2023-5-27 22:20
。。。。。看看怎么样

提示语法错误
作者: BLACKPINK    时间: 2023-5-27 22:35
valjxf 发表于 2023-5-27 22:25
提示语法错误

他这个还是JAVA代码呀 肯定错误呀
作者: xuwu001    时间: 2023-5-27 22:49
遇事不决gpt
作者: 梦寻简单    时间: 2023-5-27 23:03
这看起来是BASE64编解码啊,百du一下JS是如何实现 Base64编解码的。

作者: xwwyt    时间: 2023-5-28 11:58
[JavaScript] 纯文本查看 复制代码
const afX = 'KLMNOPQRSTUVWXYZABCDEFUVWXYabGHIJcde0fghijklmnopqrs123tuvwxyz456789+/';
function init() {
  let afY = new Uint8Array(128);
  for (let i = 0; i < afX.length; i++) {
    afY[afX.charCodeAt(i)] = i;
  }
  return afY;
}
const afY = init();
function encode(data) {
  let sb = [];
  for (let i = 0; i < data.length; i += 3) {
    let b = [0, 0, 0, 0];
    let tmp = 0;
    for (let j = 0; j < 3; j++) {
      let dIdx = i + j;
      if (dIdx < data.length) {
        b[j] = tmp | (data[dIdx] >>> ((j * 2) + 2));
        tmp = (data[dIdx] << (((2 - j) * 2) + 2) & 255) >>> 2;
      } else {
        b[j] = tmp;
        tmp = 64;
      }
    }
    b[3] = tmp;
    for (let j = 0; j < 4; j++) {
      if (b[j] <= 63) {
        sb.push(afX[b[j]]);
      } else {
        sb.push('=');
      }
    }
  }
  return sb.join('');
}
function decode(input) {
  let data = new Uint8Array(input.length);
  for (let i = 0; i < input.length; i++) {
    data = afY[input.charCodeAt(i)];
  }
  let output = [];
  for (let i = 0; i < data.length; i += 4) {
    let b = [0, 0, 0];
    let tmp = 0;
    for (let j = 0; j < 3; j++) {
      let dIdx = i + j;
      let nextIdx = dIdx + 1;
      if (nextIdx < data.length && data[nextIdx] >= 0) {
        b[j] = ((data[dIdx] << ((j * 2) + 2)) & 255) | (data[nextIdx] >>> (((2 - (j + 1)) * 2) + 2));
        tmp++;
      }
    }
    for (let j = 0; j < tmp; j++) {
      output.push(b[j]);
    }
  }
  return new Uint8Array(output);
}



补充内容 (2023-5-28 12:23):
9楼补充GPT-4转换的代码
作者: xwwyt    时间: 2023-5-28 12:22
[JavaScript] 纯文本查看 复制代码
const afX = ['K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'];
let afY = new Array(128).fill(-1);

function init() {
    for (let i = 0; i < afX.length; i++) {
        afY[afX.charCodeAt(0)] = i;
    }
}

function encode(byteArray) {
    let sb = [];
    for (let i = 0; i < byteArray.length; i += 3) {
        let bArr2 = new Array(4).fill(0);
        let b = 0;
        for (let i2 = 0; i2 <= 2; i2++) {
            let i3 = i + i2;
            if (i3 <= byteArray.length - 1) {
                bArr2[i2] = b | (byteArray[i3] >>> ((i2 * 2) + 2));
                b = (((byteArray[i3] << ((2 - i2) * 2 + 2)) & 0xFF) >>> 2);
            } else {
                bArr2[i2] = b;
                b = 64;
            }
        }
        bArr2[3] = b;
        for (let i4 = 0; i4 <= 3; i4++) {
            if (bArr2[i4] <= 63) {
                sb.push(afX[bArr2[i4]]);
            } else {
                sb.push('=');
            }
        }
    }
    return sb.join('');
}

function decode(str) {
    let byteArrayOutputStream = [];
    let bytes = new TextEncoder().encode(str);
    let bArr = new Array(bytes.length).fill(0);
    for (let i = 0; i < bytes.length; i++) {
        bArr = afY[bytes];
    }
    for (let i2 = 0; i2 < bArr.length; i2 += 4) {
        let bArr2 = new Array(3).fill(0);
        let i3 = 0;
        for (let i4 = 0; i4 <= 2; i4++) {
            let i5 = i2 + i4;
            let i6 = i5 + 1;
            if (i6 <= bArr.length - 1 && bArr[i6] >= 0) {
                bArr2[i4] = (((bArr[i5] << ((i4 * 2) + 2)) & 0xFF) | (bArr[i6] >>> (((2 - (i4 + 1)) * 2) + 2)));
                i3++;
            }
        }
        for (let i7 = 0; i7 < i3; i7++) {
            byteArrayOutputStream.push(bArr2[i7]);
        }
    }
    return new Uint8Array(byteArrayOutputStream);
}

init();


作者: valjxf    时间: 2023-5-28 13:28
xwwyt 发表于 2023-5-28 12:22
[mw_shl_code=javascript,true]const afX = ['K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'A', 'B' ...

哥,语法错误
作者: xwwyt    时间: 2023-5-28 13:29

哪个部分错了
作者: Siempre    时间: 2023-5-28 13:37
我也来看看




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4