Git Product home page Git Product logo

crypto50's Introduction

Crypto50 : Secure Your Data with Hybrid Encryption

Crypto50 GUI

Description ๐Ÿ“œ:

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.


Crypto50 ๐Ÿ”:

  • Interfaces : GUI and CLI
  • Softwer Architectural Pattern : MVP
  • Encryption Tecnology : Hybrid Cryptography
  • Version : 1.0

Crypto50 Hybrid Encryption and Decryption Diagram ๐Ÿ“ˆ:

Hybrid Cryptography Diagram


Dependencies ๐Ÿ“ฆ:


Setup ๐Ÿ› ๏ธ:

  1. Clone GitHub repositories :
    • Open Terminal/CMD to a specific directory
    • Install git softwer (if already install skip this step)
    • Run this command : git clone https://github.com/codebysumit/Crypto50.git
  2. Change working directory to project directory
    • Run this command : cd Crypto50
  3. Install dependencies:
    • Install Python and pip (if already install skip this step)
    • Run this command : pip intall -r requirements.txt

Unit Testing ๐Ÿงช:

  • Open project root directory Crypto50
  • Run this command : python test_project.py
  • After unit testing some cache file automaticlly generated __testfiles__/testing_module this folder due to testing process (you can delete this folder).

Run Crypto50 GUI Interfaces ๐Ÿ–ฅ๏ธ:

  • Open project root directory Crypto50
  • Run this command : python project.py

Crypto50 GUI


Run Crypto50 CLI Interfaces โŒจ๏ธ:

Open project root directory Crypto50 and according to your requirment run flowing command.

  1. Generate RSA Private key + Public :

    • Generate RSA keys set : python crypto50.py --generate_key "OUTPUT_FOLDER_PATH"

    • >>> python crypto50.py --generate_key "OUTPUT_FOLDER_PATH"
      Keys successfully save to: OUTPUT_FOLDER_PATH/KEYS_20240307_201805_425722
  2. 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"

    • >>> python crypto50.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"
      Encription text successfully save to: 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"

    • >>> python crypto50.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"
      Encription file successfully save to: 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"

    • >>> python crypto50.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] : Successfully encripted "OUTPUT_FOLDER_PATH/INPUT_FILE_1.mp4" ==> "OUTPUT_FOLDER_PATH/ENCRYPTION_1.enc"
      [2/4] : Successfully encripted "OUTPUT_FOLDER_PATH/INPUT_FILE_2.jpg" ==> "OUTPUT_FOLDER_PATH/ENCRYPTION_2.enc"
      [3/4] : Successfully encripted "OUTPUT_FOLDER_PATH/INPUT_FILE_3.mp3" ==> "OUTPUT_FOLDER_PATH/ENCRYPTION_3.enc"
      [4/4] : Successfully encripted "OUTPUT_FOLDER_PATH/INPUT_FILE_4.txt" ==> "OUTPUT_FOLDER_PATH/ENCRYPTION_4.enc"
      Successfully encripted 4 files.
  3. 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"

    • >>> python crypto50.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"
      Decription file successfully save to: 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"

    • >>> python crypto50.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] : Successfully decripted "ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_1.enc" ==> "OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_115599.mp4"
      [2/4] : Successfully decripted "ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_2.enc" ==> "OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_386111.jpg"
      [3/4] : Successfully decripted "ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_3.enc" ==> "OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_897642.mp3"
      [4/4] : Successfully decripted "ENCRYPTED_FILES_FOLDER_PATH/ENCRYPTION_4.enc" ==> "OUTPUT_FOLDER_PATH/DECRYPT_20240307_213118_975783.txt"
      Successfully decripted 4 files.

Command-line Argument List โŒจ๏ธ:

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 ๐Ÿ•น๏ธ:

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 โŒ โœ… โŒ

Tested OS ๐Ÿ“:

OS Name Test Result
Windows 11 โœ…

Tested Python Version ๐Ÿ“:

Python Version Test Result
3.11.1 โœ…

crypto50's People

Contributors

codebysumit avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.