xorFileContent.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. const fs = require('fs')
  2. const path = require('path')
  3. const { xorKey } = require('../package.json') // 密匙
  4. function xorFileContent(data) {
  5. // 这里示例简单地对每个字节进行异或操作,你可以根据需要进行更复杂的操作
  6. const result = Buffer.alloc(data.length);
  7. for (let i = 0; i < data.length; i++) {
  8. result[i] = data[i] ^ xorKey;
  9. }
  10. return result;
  11. }
  12. const getHtml = (filename) => {
  13. const data = fs.readFileSync(path.join(__dirname, filename, 'index.html'));
  14. // 执行异或操作
  15. const decryptedData = xorFileContent(data);
  16. return decryptedData.toString('utf-8')
  17. }
  18. const xorFileAssets = (name) => {
  19. const data = fs.readFileSync(path.join(__dirname, name));
  20. return xorFileContent(data)
  21. }
  22. const xorFile = (path) => {
  23. function xorBuffer(buffer, key) {
  24. for (let i = 0; i < buffer.length; i++) {
  25. buffer[i] ^= key;
  26. }
  27. }
  28. // 读取图片文件
  29. fs.readFile(path, (err, data) => {
  30. if (err) {
  31. console.error('Error reading file:', err);
  32. return;
  33. }
  34. // 异或处理
  35. const key = 0xFF; // 这里可以设置异或的密钥
  36. xorBuffer(data, key);
  37. // 写入处理后的图片文件
  38. fs.writeFile(path, data, (err) => {
  39. if (err) {
  40. console.error('Error writing file:', err);
  41. return;
  42. }
  43. console.log('File written successfully');
  44. });
  45. });
  46. }
  47. // xorFile(path.join(__dirname, '../files/lk7hBDCE7WRVGEX7UQ7zweT0ELrX/data/pres/s4s10.png'))
  48. module.exports = {
  49. getHtml,
  50. xorFileAssets
  51. }