1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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 }
|