A simple file system that encrypts each file individually. Designed for use with cloud storage.
- You have some files
- You make an encryptFS in a directory and add all three files. You end up with an encrypted index file and three files with randomly generated names (e.g.
- Later, you can open the existing encryptFS and decrypt your files back.
- What do you use for the actual encryption? PyCrypto, AES-256 (32-byte key)
- Why are the files encrypted separately instead of being put together in blocks? Isn't this a flaw in the security? For now, I'm willing to trade off the security to simplify the code and to allow for easier/quicker decryption of specific individual files.
- Does this keep my original file metadata? For now, no.
This project is very new and this API is very subject to change.
git clone https://github.com/csu/encryptFS.git cd encryptFS pip install -r requirements.txt
from encryptfs import EncryptFS # Replace `asdfasdf` with a password encfs = EncryptFS('asdfasdf') # This will encrypt all new files in the current directory encfs.encrypt_all() # This will decrypt all encrypted files in the index encfs.decrypt_all()
Have questions or suggestions? Open an issue.
CLI requires the
python cli.py <action> <password>
- FUSE support