使用密码或令牌加密 .csv 文件,并在每次用户想要读取文件时询问该密码

问题描述

这篇文章might be related to this one。我想用密码或令牌加密 .csv 文件。然后,我想编写一个脚本,使用密码解密文件,将 .csv 文件作为数据框读入,然后继续对内容进行数据分析。如何实现这一目标?

示例:

{{1}}

解决方法

您可以使用加密库来创建加密方案。

创建密钥:

from cryptography.fernet import Fernet
key = Fernet.generate_key()
f = Fernet(key)

将该密钥保存在某处!

当你想加密时加载你的密钥!

def load_key():
    return open(PATH TO SECRET KEY,"rb").read()

加密您的文件

def encrypt_it(path_csv):
  """Takes a message an encrypts it
  """
  key = load_key()
  encrypted = ''
      
  # create Fernet using secret
  f = Fernet(key)

  with open(path_csv,'rb') as unencrypted:
      _file = unencrypted.read()
      encrypted = f.encrypt(_file)
  
  with open('encrypted_file.csv','wb') as encrypted_file:
     encrypted_file.write(encrypted)

稍后再读一遍:

def decrypt_it(path_encrypted):
  key = load_key()
  f = Fernet(key)
  decrypted = ''
  with open(path_encrypted,'rb') as encrypted_file:
      decrypted = f.decrypt(encrypted_file.read())
  return decrypted