|
|
顺便分享一下某个游戏存档的校验
- import hashlib
- # 从文件读取存档字符串
- input_file = "SaveData.sav" # 文件名
- try:
- with open(input_file, "r", encoding="utf-8") as f:
- save = f.read().strip()
- except FileNotFoundError:
- print(f"错误:找不到文件 {input_file}")
- exit(1)
- # 存档格式: {JSON}Check{MD5}
- # 校验逻辑: MD5( JSON + "Chemical" )
- # 最终拼接: JSON + "Check" + MD5
- # 分离出 JSON 数据部分(去掉末尾的 Check + 32位哈希)
- if "Check" in save:
- json_data = save[:save.rfind("Check")]
- else:
- json_data = save
- md5 = hashlib.md5((json_data + "Chemical").encode("utf-8")).hexdigest()
- result = json_data + "Check" + md5
- print(f"\n校验哈希: {md5}")
- print(f"\n完整存档:\n{result}")
- # 将结果写回原文件
- with open(input_file, "w", encoding="utf-8") as f:
- f.write(result)
- print(f"\n结果已保存到原文件: {input_file}")
复制代码 |
|