1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import glob
- import os
- hashmap = {
- '0': "7", '1': "3", '2': "5", '3': "1", '4': "9", '5': "2", '6': "6", '7': "4", '8': "8", '9': "0",
- 'A': "3", 'B': "7", 'C': "1", 'D': "5", 'E': "9", 'F': "2", 'G': "6", 'H': "4", 'I': "8", 'J': "0",
- 'K': "3", 'L': "7", 'M': "1", 'N': "5", 'O': "9", 'P': "2", 'Q': "6", 'R': "4", 'S': "8", 'T': "0",
- 'U': "3", 'V': "7", 'W': "1", 'X': "5", 'Y': "9", 'Z': "2",
- 'a': "6", 'b': "4", 'c': "8", 'd': "0", 'e': "3", 'f': "7", 'g': "1", 'h': "5", 'i': "9", 'j': "2",
- 'k': "6", 'l': "4", 'm': "8", 'n': "0", 'o': "3", 'p': "7", 'q': "1", 'r': "5", 's': "9", 't': "2",
- 'u': "6", 'v': "4", 'w': "8", 'x': "0", 'y': "3", 'z': "7", '_': "8", '-': "8"
- }
- def xorByFileName(filename):
- first_three = filename[:3]
- last_three = filename[-3:]
- xor_result = ''
- for ch in first_three:
- xor_result += hashmap[ch]
- for ch in last_three:
- xor_result += hashmap[ch]
- sixnum = int(xor_result) % 255
- return sixnum
- def xor_file_all(filename,key):
- with open(filename, 'rb') as file:
- content = file.read()
- xor_result = b''
- # 仅对文件的前100个字节进行异或操作
- for i, byte in enumerate(content):
- xor_byte = bytes([byte ^ key])
- xor_result += xor_byte
- with open(filename, 'wb') as output_file:
- output_file.write(xor_result)
- def xor_file(filename,key):
- with open(filename, 'rb') as file:
- content = file.read()
- xor_result = b''
- # 仅对文件的前100个字节进行异或操作
- for i, byte in enumerate(content[:100]):
- xor_byte = bytes([byte ^ key])
- xor_result += xor_byte
- # 将剩余部分直接拼接到异或后的结果后面
- xor_result += content[100:]
- with open(filename, 'wb') as output_file:
- output_file.write(xor_result)
- def is_html_content(file_path):
- return True
- try:
- with open(file_path, 'r', encoding='utf-8') as file:
- content = file.read()
- if "<html" in content.lower():
- return True
- else:
- return False
- except Exception:
- print("文件不存在。")
- return False
- if __name__ == '__main__':
- for fff in glob.glob(r"E:\code\zd\desktop\offline-pdf-app\files\*"):
- print(os.path.basename(fff))
- if not os.path.isfile(fff):
- print(fff)
- key = xorByFileName(os.path.basename(fff))
- indexFile = fff + r"\index.html"
- if is_html_content(indexFile):
- xor_file_all(indexFile,key)
- for x in glob.glob(fff + r"\data\pres\*.png")+ glob.glob(fff + r"\data\pres\*.mp4")+glob.glob(fff + r"\data\pres\*.jpg"):
- xor_file(x,key)
|