Importar csv encriptado en Python 3

Así que estoy planeando hacer algunos análisis de datos usando un notbook de Jupyter (Python 3), por razones de queueboración quiero save los datos en un repository github, sin embargo, el set de datos es confidencial.

Como tal, me gustaría almacenar los datos (actualmente .csv) como un file encriptado en el repository y luego descifrarlo en time de ejecución (supongo que con un post de contraseña).

¿Cuál es el mejor método para hacer esto?

Al final, utilicé Python 3.6 y SimpleCrypt para encriptar el file y luego lo cargué.

Creo que este es el código que utilicé para encriptar el file:

f = open('file.csv','r').read() ciphertext = encrypt('USERPASSWORD',f.encode('utf8')) #this .encode('utf8') is the bit im unsure about e = open('file.enc','wb') # file.enc doesn't need to exist, python will create it e.write(ciphertext) e.close 

Este es el código que uso para descifrar en time de ejecución, ejecuto getpass("password: ") como argumento para no tener que almacenar una variable de password en la memory

 from io import StringIO import pandas as pd from simplecrypt import encrypt, decrypt from getpass import getpass # opens the file f = open('file.enc','rb').read() print('Please enter the password and press the enter key \n Decryption may take some time') # Decrypts the data, requires a user-input password CSVplaintext = decrypt(getpass("password: "), f).decode('utf8') print('Data have been Decrypted') #create a temp csv-like file to pass to pandas.read_csv() DATA=StringIO(CSVplaintext) # Makes a panda dataframe with the data df = pd.read_csv(DATA) 

Tenga en count que el comportamiento de encoding UTF-8 es diferente en Python 2.7, por lo que el código será ligeramente diferente.