This serves as a small project I did to explore how encryption works and how I could implement it in a practical way. It works with useing the pycrypto package and is an implementation of AES, SHA, and HMAC. If you see something that makes this blantly insecure, besides the fact it doesnt have a salt :(... Let me know.
I couldn't figure out a way to reliably save the salts for the individual files to use in decryption that would be secure. I could use the same salt for every file and hard code it into the program but then it can still be broken with a rainbow table anyway.
Encryption Instructions: 1) Run the .py through terminal or Command Prompt 2) Enter the password you would like in the text box and click submit key 3) Click Encrypt to find the file you wish to encrypt then open it in the file explorer 4) The encrypted file will be in the same directory as the original file and the filename with append .enc
Decryption Instructions: 1) Run the .py through terminal or Command Prompt 2) Enter the password you encrypted with in the text box and click submit key 3) Click Decrypt and find the file you wish to decrypt then open it in the file explorer 4) The Decrypted file will be in the same directory and .enc will be removed
Known Issues: 1) When given files larger than 1GB the process of writing it to the new file seems to corrupt the data making decryption impossible. TEST THE DECRYPT METHOD BEFORE YOU DELETE THE ORIGINAL! 2) No pop up window appears to show sucess or failure of encryption or decryption. But if you open it through command line it will print "It Worked!" on sucess
To-Do: 1) Add salting in a meaningful way 2) Fix known issues
Credits: 1) I don't remember specifically who but I references a bunch of stack overflow answers and questions to create this, so if you see something simliar to what you have done let me know and I will site you more formally. (I'm not about stealing credit)