From 165b86a15df5ff222ae6c1c8364bc03c70389cbf Mon Sep 17 00:00:00 2001 From: HTMonkeyG <113249643+HTMonkeyG@users.noreply.github.com> Date: Sun, 22 Oct 2023 15:43:17 +0800 Subject: [PATCH] Add files via upload --- includes/XOREncryptHelper.js | 6 ++-- includes/tFormat.js | 13 ++++----- includes/text.js | 53 +++++++++++++++++++++--------------- 3 files changed, 39 insertions(+), 33 deletions(-) diff --git a/includes/XOREncryptHelper.js b/includes/XOREncryptHelper.js index 8e44830..0c41882 100644 --- a/includes/XOREncryptHelper.js +++ b/includes/XOREncryptHelper.js @@ -5,9 +5,9 @@ function checkFileIsEncrypt(buf){ } function encryptFile(buf, key){ - if(key.length != 8) return !1; if(!key || !key.length) - key = [ 0x31, 0x35, 0x38, 0x39, 0x32, 0x33, 0x38, 0x38 ]; + key = Buffer.from('88329851'); + else key = Buffer.from(key); var ret = Buffer.from(buf), magicNum = Buffer.from([0x80, 0x1D, 0x30, 0x01]); @@ -15,7 +15,7 @@ function encryptFile(buf, key){ for(var i = 0;i < ret.length;i++) ret[i] ^= key[i % 8]; - ret = Buffer.concat(magicNum, ret); + ret = Buffer.concat([magicNum, ret]); return ret; } diff --git a/includes/tFormat.js b/includes/tFormat.js index a6516bd..d3ee30a 100644 --- a/includes/tFormat.js +++ b/includes/tFormat.js @@ -13,10 +13,8 @@ function printF(txt, arr){ var ret = ''; if(txt == void 0 || !txt.length) return ''; for(var i = 0;i < txt.length;i++){ - if(txt[i] == '\\') - (txt[i + 1] == void 0) ? ret += '\\' : (ret += txt[i+1], i++); - else if(txt[i] == '%') - (txt[i + 1] == void 0) ? ret += '%' : (ret += (arr[txt[i + 1]] || ''), i++); + if(txt[i] == '%') + (txt[i + 1] != void 0 && /[0-9]+/.test(txt[i + 1])) ? (ret += (arr[txt[i + 1]] || ''), i++) : ret += '%'; else ret += txt[i] } @@ -103,13 +101,12 @@ function limPrgBar(title, percent){ var txt = '', a; typeof(percent) !== 'number' && (percent = 0); percent > 1 && (percent = 1); - rl.moveCursor(proc.stdout, 0, -2) + rl.moveCursor(proc.stdout, 0, -2); + rl.clearLine(proc.stdout) if(title.length > proc.stdout.columns){ txt = '…' + title.slice(-proc.stdout.columns + 1) - } else if(title.length < proc.stdout.columns){ + } else txt = title; - for(a = title.length;a < proc.stdout.columns;a++) txt += ' '; - } printF(txt); txt = '§9[§b'; for(a = 0;a < (proc.stdout.columns - 10);a++){ diff --git a/includes/text.js b/includes/text.js index b0b3031..cbc0042 100644 --- a/includes/text.js +++ b/includes/text.js @@ -1,33 +1,42 @@ var log = { - welcome: '§3欢迎使用XOR存档加解密工具v1.0.', - exit: '\n§d正在关闭软件...', - tip1: '§3请输入目标存档level.dat所在文件夹路径', - targetPath: '§3目标目录: %0', + autoKey: '§3已选择自适应密钥.', + avalTest: '§2正在进行ldb合理性测试...', + avalTestFail: '§4发现魔数不对应的ldb文件, 可能解密失败或存档损坏.', + avalTestSucc: '§2ldb文件魔数均合理, 测试通过.', + cpFile: '§2正在复制源文件...', + cping: '§6%0', + createFolder: '§2正在创建文件夹...', + decrypting: '§2正在解密...', + decSucc1: '§2解密完成, 解密后存档已保存至§6%0.\n§3本次执行结束.', + delExistFolder: '§2正在删除已有文件夹...', + encrypting: '§2正在加密...', + encSucc1: '§2加密完成, 加密后存档已保存至§6%0.\n§5本次执行结束.', + error: '§4出现错误: %0', + exit: '\n§d正在关闭软件...\x1b[0m', + foundEncFile: '§4找到已加密文件, 无法再次执行加密.\n§5本次执行结束', + getKeyFail: '§4获取密钥失败.\n§3本次执行结束.', + getKeySucc: '§2获取密钥成功: §3%0', + gt3EncFile: '§2找到 §6%0 §2等§6%1§2个加密文件.', + invalidKey: '§4无效密钥, 请重试.', + invalidOp: '§4无效的操作类型.', + le3EncFile: '§2找到加密文件: §6%0', + missing: '§4缺失: %0', + noEncFile: '§4未找到加密的文件, 存档文件夹可能已解密.\n§3本次执行结束', + noToEncFile: '§4未找到准备加密的文件, 存档文件夹可能损坏.\n§5本次执行结束', notDir: '§4目标不是文件夹, 请重试.', + readyToEnc: '§5准备加密.', + targetNotExist: '§4目标不存在.', + targetPath: '§3目标目录: %0', test: '§2已确认目标, 正在检测完整性...', - missing: '§4缺失: %0', - testSucc: '§2目标文件夹完整.\n§3请选择操作类型: 0.被动解密, 1.被动加密, 2.主动解密, 3.主动加密', testFail: '§4完整性测试未通过, 请检查后再试.', - targetNotExist: '§4目标不存在.', - invalidOp: '§4无效的操作类型', + testSucc: '§2目标文件夹完整.\n§3请选择操作类型: 0.被动解密, 1.被动加密, 2.主动解密, 3.主动加密', + tip1: '§3请输入目标存档level.dat所在文件夹路径.', tip2: '§3正在进行被动解密.\n扫描文件夹...', - error: '§4出现错误: %0', - noEncFile: '§4未找到加密的文件.', - le3EncFile: '§2找到加密文件: §6%0', - gt3EncFile: '§2找到 §6%0 §2等§6%1§2个加密文件', - createFolder: '§2正在创建文件夹...', - cpFile: '§2正在复制源文件...', - cping: '§6%0', - decrypting: '§2正在解密...§6', - decSucc1: '§2解密成功, 解密后存档已保存至§6%0.\n§3本次执行结束.', tip3: '§3请输入十六进制密钥. 若大于64bit将截取前64bit作为密钥. 自适应请留空.', - invalidKey: '§4无效密钥, 请重试', - autoKey: '§3已选择自适应密钥.', tip4: '§3正在进行主动解密.\n扫描文件夹...', + tip5: '§5正在进行被动加密.\n扫描文件夹...', tryGetKey: '§2尝试获取密钥...', - getKeyFail: '§4获取密钥失败.\n§3本次执行结束.', - getKeySucc: '§2获取密钥成功: §3%0', - delExistFolder: '§2正在删除已有文件夹...' + welcome: '§3欢迎使用XOR存档加解密工具v1.0.' }; exports.log = log;