Crypto50 is user-friendly data encryption softwer build with python. that empowers you to encript and decript sensitive file and text data using a pawerful hybrid encryption aprroach. Crypto50 specially design to securely share your sensitive data through the internet i.e. email, cloud stroage etc. it offers both graphical (GUI) and command-line (CLI) interfaces and adheres to the Model-View-Presenter softwer design pattern.
- Interfaces : GUI and CLI
- Softwer Architectural Pattern : MVP
- Encryption Tecnology : Hybrid Cryptography
- Version : 1.0
- Python - 3.11.1
- Packages :
- cryptography - 42.0.2 (https://pypi.org/project/cryptography/)
- rsa - 4.9 (https://pypi.org/project/rsa/)
- Pillow - 10.2.0 (https://pypi.org/project/pillow/)
- pytest - 8.0.0 (https://pypi.org/project/pytest/)
- Clone GitHub repositories :
- Open Terminal/CMD to a specific directory
- Install
gitsoftwer (if already install skip this step) - Run this command :
git clone https://github.com/codebysumit/Crypto50.git
- Change working directory to project directory
- Run this command :
cd Crypto50
- Run this command :
- Install dependencies:
- Install
Pythonandpip(if already install skip this step) - Run this command :
pip intall -r requirements.txt
- Install
- Open project root directory
Crypto50 - Run this command :
python test_project.py - After unit testing some cache file automaticlly generated
__testfiles__/testing_modulethis folder due to testing process (you can delete this folder).
- Open project root directory
Crypto50 - Run this command :
python project.py
Open project root directory Crypto50 and according to your requirment run flowing command.
Generate RSA Private key + Public :
Generate RSA keys set :
python crypto50.py --generate_key "OUTPUT_FOLDER_PATH">>>pythoncrypto50.py--generate_key"OUTPUT_FOLDER_PATH"Keyssuccessfullysaveto: OUTPUT_FOLDER_PATH/KEYS_20240307_201805_425722
Encryption :
Encryption text :
python crypto50.py --encryption_text "INPUT_TEXT" --output "OUTPUT_FILE_PATH" --pub_key "RECIVER_PUBLIC_KEY_FILE_PATH" --priv_key "SENDER_PRIVET_KEY_FILE_PATH">>>pythoncrypto50.py--encryption_text"INPUT_TEXT"--output"OUTPUT_FILE_PATH/ENCRYPTION_FILE_NAME.enc"--pub_key"RECIVER_PUBLIC_KEY_FILE_PATH/public.pem"--priv_key"SENDER_PRIVET_KEY_FILE_PATH/private.pem"Encriptiontextsuccessfullysaveto: OUTPUT_FILE_PATH/ENCRYPTION_FILE_NAME.enc
Encryption File :
python crypto50.py --encryption_file "INPUT_FILE_PATH" --output "OUTPUT_FILE_PATH" --pub_key "RECIVER_PUBLIC_KEY_FILE_PATH" --priv_key "SENDER_PRIVET_KEY_FILE_PATH">>>pythoncrypto50.py--encryption_file"INPUT_FILE_PATH/INPUT_FILE.txt"--output"OUTPUT_FILE_PATH/ENCRYPTION_FILE_NAME.enc"--pub_key"RECIVER_PUBLIC_KEY_FILE_PATH/public.pem"--priv_key"SENDER_PRIVET_KEY_FILE_PATH/private.pem"Encriptionfilesuccessfullysaveto: OUTPUT_FILE_PATH/ENCRYPTION_FILE_NAME.enc
Encryption Folder :
python crypto50.py --encryption_folder "INPUT_FOLDER_PATH" --output_dir "OUTPUT_FOLDER_PATH" --pub_key "RECIVER_PUBLIC_KEY_FILE_PATH" --priv_key "SENDER_PRIVET_KEY_FILE_PATH">>>pythoncrypto50.py--encryption_folder"INPUT_FOLDER_PATH"--output_dir"OUTPUT_FOLDER_PATH"--pub_key"RECIVER_PUBLIC_KEY_FILE_PATH/public.pem"--priv_key"SENDER_PRIVET_KEY_FILE_PATH/private.pem" [1/4] : Successfullyencripted"OUTPUT_FOLDER_PATH/INPUT_FILE_1.mp4"==>"OUTPUT_FOLDER_PATH/ENCRYPTION_1.enc" [2/4] : Successfullyencripted"OUTPUT_FOLDER_PATH/INPUT_FILE_2.jpg"==>"OUTPUT_FOLDER_PATH/ENCRYPTION_2.enc" [3/4] : Successfullyencripted"OUTPUT_FOLDER_PATH/INPUT_FILE_3.mp3"==>"OUTPUT_FOLDER_PATH/ENCRYPTION_3.enc" [4/4] : Successfullyencripted"OUTPUT_FOLDER_PATH/INPUT_FILE_4.txt"==>"OUTPUT_FOLDER_PATH/ENCRYPTION_4.enc"Successfullyencripted4files.
Decryption :
Decryption File :
python crypto50.py --decryption_file "ENCRYPTED_FILES_PATH" --output_dir "OUTPUT_FOLDER_PATH" --priv_key "RECIVER_PRIVET_KEY_FILE_PATH" --pub_key "SENDER_PUBLIC_KEY_FILE_PATH">>>pythoncrypto50.py--decryption_file"ENCRYPTED_FILES_PATH/ENCRYPTION_FILE_NAME.enc"--output_dir"OUTPUT_FOLDER_PATH"--priv_key"RECIVER_PRIVET_KEY_FILE_PATH/private.pem"--pub_key"SENDER_PUBLIC_KEY_FILE_PATH/public.pem"Decriptionfilesuccessfullysaveto: OUTPUT_FOLDER_PATH/DECRYPT_20240307_212528_345110.txt
Decryption Folder :
python crypto50.py --decryption_folder "ENCRYPTED_FILES_FOLDER_PATH" --output_dir "OUTPUT_FOLDER_PATH" --priv_key "RECIVER_PRIVET_KEY_FILE_PATH" --pub_key "SENDER_PUBLIC_KEY_FILE_PATH">>>pythoncrypto50.py--decryption_folder"ENCRYPTED_FILES_FOLDER_PATH"--output_dir"OUTPUT_FOLDER_PATH"--priv_key"RECIVER_PRIVET_KEY_FILE_PATH/private.pem"--pub_key"SENDER_PUBLIC_KEY_FILE_PATH/public.pem" [1/4] : Successfullydecripted"ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_1.enc"==>"OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_115599.mp4" [2/4] : Successfullydecripted"ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_2.enc"==>"OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_386111.jpg" [3/4] : Successfullydecripted"ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_3.enc"==>"OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_897642.mp3" [4/4] : Successfullydecripted"ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_4.enc"==>"OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_975783.txt"Successfullydecripted4files.
| Argument | Description |
|---|---|
| --generate_keys, -GENKEYS | Get output folder path and generate new public and private key file. |
| --encryption_file, -ENCFILE | Get input file path and encrypt this file |
| --encryption_text, -ENCTEXT | Get input text and encrypt this text |
| --encryption_folder, -ENCFOLDER | Get input folder and encrypt all file from the folder. |
| --decryption_file, -DECFILE | Get encrypt file path and decrypt this file |
| --decryption_folder, -DECFOLDER | Get encrypt folder path and decrypt all file from the folder |
| --output, -O | Get output file path |
| --output_dir, -ODIR | Get output folder path. |
| --pub_key, -PUB | Get public key file path. |
| --priv_key, -PRIV | Get private key file path. |
| Features | Crypto50 CLI | Crypto50 GUI | hybrid_crypto (Crypto50 Module) |
|---|---|---|---|
| Generate RSA Keys | ✅ | ✅ | ✅ |
| Encryption Texts | ✅ | ✅ | ✅ |
| Encryption File | ✅ | ✅ | ✅ |
| Encryption Files From Folder | ✅ | ✅ | ❌ |
| Decryption File | ✅ | ✅ | ✅ |
| Decryption Files from Folder | ✅ | ✅ | ❌ |
| My Keys Manager | ❌ | ✅ | ❌ |
| Public Keys Manager | ❌ | ✅ | ❌ |
| OS Name | Test Result |
|---|---|
| Windows 11 | ✅ |
| Python Version | Test Result |
|---|---|
| 3.11.1 | ✅ |

