如何利用随机ASCII密钥解密文件并写入新文件?
解密随机ASCII密钥加密的文件
核心思路
你的加密逻辑是通过映射字典listsdict,将原始ASCII码(1-127)一一映射到随机生成的1-128唯一值。要解密,只需反转这个映射字典,把加密后的ASCII码映射回原始编码即可。
具体实现步骤
- 生成解密字典:将加密字典的键值对互换,得到
加密后ASCII码: 原始ASCII码的映射 - 解析加密内容:把加密字符串转成ASCII码列表,用解密字典还原原始编码
- 写入结果:将还原后的字符串写入新文件
完整解密代码(替换原代码中注释部分)
# 生成解密字典:反转加密字典的键值对 decrypt_dict = {v: k for k, v in listsdict.items()} # 解密加密后的字符串 encrypted_ascii = [ord(c) for c in cypher] original_ascii = [decrypt_dict[code] for code in encrypted_ascii] original_text = "".join([chr(c) for c in original_ascii]) # 写入解密后的文件 output_filename = input("Enter output file name: ") with open(output_filename, "w") as out_file: out_file.write(original_text) print(f"解密完成,结果已写入 {output_filename}")
注意事项
- 加密时生成的
listsdict是解密的关键,必须保留该密钥。如果加密后关闭程序,下次运行需要手动输入当时的密钥(可以在加密时把密钥保存到文件,解密时读取),否则无法还原内容。 - 加密过程中可能生成128这个ASCII码(对应控制字符),但解密时会正常映射回原始编码,不影响结果。
内容的提问来源于stack exchange,提问作者Addapp
相关产品推荐
相关产品推荐

