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