Python如何解密文件内加密字节并存储为字符串格式列表
功能实现代码
你只需要在view判断的代码块中添加按行读取、逐行解密的逻辑即可,完整补全后的代码如下:
elif menuchoice == "crypt": os.system('cls') while True: chooseyourscore = input(" >>> ") if chooseyourscore == "view": decrypted_list = [] # 二进制模式读取所有加密行 with open("crypted.txt", "rb") as f: encrypted_lines = f.readlines() for line in encrypted_lines: # 移除每行末尾的换行字节 encrypted_content = line.rstrip(b'\n') # 跳过空行避免解密报错 if not encrypted_content: continue # 解密后转为字符串存入列表 decrypted_str = crypter.decrypt(encrypted_content).decode() decrypted_list.append(decrypted_str) # 后续可自行处理decrypted_list,比如打印输出验证 print(decrypted_list) else: # 原存储逻辑优化,无需两次打开文件 encrypted_data = crypter.encrypt(chooseyourscore.encode()) + b'\n' with open("crypted.txt", "ab") as encryption: encryption.write(encrypted_data) continue
注意事项
- 上述实现默认你使用的是cryptography库的Fernet加密方案,如果你用的是自定义加密逻辑,只需要对应修改解密和解码的代码即可
- 用
with语句操作文件可以自动处理文件关闭,避免出现文件句柄泄漏的问题 - 存储时直接把加密后的字节和换行字节
b'\n'拼接后一次性写入,比两次打开文件写入效率更高,也避免不同模式写入可能出现的编码冲突
内容的提问来源于stack exchange,提问作者S. Stashevski
相关产品推荐
相关产品推荐

