You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不借助Python第三方包实现字符串加密存储及密码解密功能

Python原生实现字符串加密存储与解密工具

功能说明

完全使用Python内置功能实现,无任何第三方包依赖,支持单字符串加密存储、密码校验解密功能,加密后文件为无意义的字符数字组合,不会泄露任何原始输入信息。

实现逻辑

  • 采用异或加密算法实现内容加密,加密后转换为十六进制字符串存储,输出为随机数字与字母组合
  • 加密时将用户输入的密码、原始字符串共同加密后写入文件,无任何明文内容存储
  • 解密时先读取文件内容解密,校验输入密码与存储的加密密码是否一致,校验通过才返回原始字符串

完整代码

def xor_encrypt_decrypt(data: bytes, key: str) -> bytes:
    key_bytes = key.encode()
    key_length = len(key_bytes)
    return bytes([byte ^ key_bytes[index % key_length] for index, byte in enumerate(data)])

if __name__ == "__main__":
    mode = input("选择模式:1-加密存储 2-解密读取\n请输入选项: ")
    # 加密流程
    if mode == "1":
        raw_input_str = input("Enter string: ")
        set_password = input("Enter decryption password: ")
        save_filename = input("Enter save name: ")
        # 拼接存储内容,使用罕见分隔符避免和原始内容冲突
        store_content = f"{set_password}\x00\x01\x00{raw_input_str}".encode()
        encrypted_data = xor_encrypt_decrypt(store_content, set_password)
        # 转十六进制写入文件
        with open(save_filename, "w", encoding="utf-8") as f:
            f.write(encrypted_data.hex())
        print(f"加密完成,文件已保存为 {save_filename}")
    # 解密流程
    elif mode == "2":
        target_file = input("file: ")
        input_password = input("password: ")
        try:
            with open(target_file, "r", encoding="utf-8") as f:
                hex_content = f.read()
            # 十六进制转字节后解密
            encrypted_bytes = bytes.fromhex(hex_content)
            decrypted_content = xor_encrypt_decrypt(encrypted_bytes, input_password).decode("utf-8")
            # 拆分密码和原始字符串
            stored_password, original_str = decrypted_content.split("\x00\x01\x00", 1)
            if stored_password == input_password:
                print(f"str: {original_str}")
            else:
                print("密码错误,无法读取内容")
        except:
            print("文件无效或密码错误,无法解密")
    else:
        print("输入选项无效")

使用示例

加密操作交互

选择模式:1-加密存储 2-解密读取
请输入选项: 1
Enter string: I like to eat muffins
Enter decryption password: password12345
Enter save name: muffin
加密完成,文件已保存为 muffin

解密操作交互

选择模式:1-加密存储 2-解密读取
请输入选项: 2
file: muffin
password: password12345
str: I like to eat muffins

注意事项

  • 异或加密强度可满足普通非敏感数据存储需求,若存储高敏感数据可自行替换为更复杂的原生实现加密逻辑
  • 加密后文件为纯十六进制字符,无任何明文信息,无法直接从文件内容读取原始数据
  • 密码存储在加密后的文件内容中,只有输入正确密码才能完成解密并读取原始字符串

内容的提问来源于stack exchange,提问作者Robert McNeil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:24:06