const fs = require('fs') const path = require('path') const { xorKeyMap } = require('../constant') function xorFileContent(data, xorKey) { // 这里示例简单地对每个字节进行异或操作,你可以根据需要进行更复杂的操作 const result = Buffer.alloc(data.length); for (let i = 0; i < data.length; i++) { result[i] = data[i] ^ xorKey; } return result; } const getHtml = (filename) => { const data = fs.readFileSync(path.join(__dirname, '../files/' + filename, 'index.html')); const xorKey = getXorKeyByFileName(filename) // 执行异或操作 const decryptedData = xorFileContent(data, xorKey); fs.writeFileSync('./index.html', decryptedData.toString('utf-8')) return decryptedData.toString('utf-8') } // 根据文件名称或者文件的 const getXorKeyByFileName = (filename) => { const fileKey = [...filename.slice(0, 3) , ...filename.slice(filename.length - 3, filename.length)] let xorKey = '' fileKey.forEach( key => { xorKey += xorKeyMap.get(key) }) return '0X' + ((xorKey % 255).toString(16)) } module.exports = { getHtml, getXorKeyByFileName }