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

Python中如何加密CSV和JSON文件 限制仅自身程序可读取

实现方案说明

你需要的效果完全可以通过对称加密算法实现,最常用的方案是AES加密,你只需要把加密密钥固定在你的Python代码中,加密后的json、csv文件只有使用对应密钥才能解密读取,其他程序拿到加密文件也无法解析出明文内容。

具体实现步骤

  • 先安装加密依赖库:pip install pycryptodome
  • 对原有读写逻辑做一层封装:写文件时先把json/csv的明文内容加密后再写入磁盘;读文件时先把磁盘中的加密内容解密后,再按原来的json/csv逻辑解析即可
  • 密钥需要保存在你的Python代码中,注意不要泄露代码内的密钥,一旦密钥泄露其他人也可以解密文件

示例代码

通用加密解密工具函数

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
import json
import csv

# 硬编码在你的代码里的32位密钥(AES-256加密需要32字节密钥,可运行一次get_random_bytes(32)生成后固定写死)
SECRET_KEY = b'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

def encrypt_data(plain_text: str) -> bytes:
    iv = get_random_bytes(AES.block_size)
    cipher = AES.new(SECRET_KEY, AES.MODE_CBC, iv)
    padded_data = pad(plain_text.encode('utf-8'), AES.block_size)
    encrypted_data = cipher.encrypt(padded_data)
    # iv不需要保密,和加密内容拼在一起存储即可
    return iv + encrypted_data

def decrypt_data(encrypted_data: bytes) -> str:
    iv = encrypted_data[:AES.block_size]
    actual_encrypted_data = encrypted_data[AES.block_size:]
    cipher = AES.new(SECRET_KEY, AES.MODE_CBC, iv)
    decrypted_padded_data = cipher.decrypt(actual_encrypted_data)
    plain_text = unpad(decrypted_padded_data, AES.block_size).decode('utf-8')
    return plain_text

加密写入json文件示例

# 原有业务数据
data = {"name": "test", "age": 20}
# 转成json明文
plain_json = json.dumps(data)
# 加密后写入磁盘
encrypted_content = encrypt_data(plain_json)
with open("data.json", "wb") as f:
    f.write(encrypted_content)

解密读取json文件示例

with open("data.json", "rb") as f:
    encrypted_content = f.read()
# 解密得到明文json
plain_json = decrypt_data(encrypted_content)
data = json.loads(plain_json)
# 后续可以正常使用data变量

csv文件的操作逻辑完全一致,写文件时把csv明文内容加密后存储,读文件时解密后再按csv格式解析即可。

注意事项

  • 密钥只需要生成一次,生成后固定写在代码里即可,不要每次运行程序都重新生成密钥,否则之前加密的文件会无法解密
  • 如果需要更高的安全性,可以把密钥存在系统密钥链中,不要直接硬编码在代码里,避免代码泄露导致密钥泄露
  • 加密后的文件是二进制格式,无法直接用文本编辑器打开查看明文,只有用你的代码加对应密钥才能解密
  • 不要弄丢密钥,一旦密钥丢失你自己也无法读取原有加密文件的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:42:03