Skip to content

Rachit-Singh/Cipher-Suite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

Cipher-Suite

A CLI for performing encryption on local files

Welcome to Cipher Suite, a way one stop for encrypting your local files. Why do that you ask? I say just for fun. It provides an extremely user-friendly CLI that anyone can understand (A basic knowledge of ciphers may be required, like for RSA)

Encryption Algorithms supported:

  • Caesar cipher
  • Vernam cipher
  • Hill cipher
  • Keyless/Column Transposition cipher
  • AES
  • RSA

File types supported :

  • Any file
  • Any folder containing files
  • Any password protected or unprotected zip file
  • Or literally anything else (a wildcard '*' can also be entered)

You can save the output in the format :

  • All files in a folder
  • All files in a zipped file (which can be password protected)
  • All processed files in zipped file and a separate keys file for easy access

Features

  • After every encryption/decryption, a "keys" file is generated in the same output folder. The file contains details regarding the process including the keys
  • This keys file can be locked inside a locker folder with a password. Pretty cool. Only for Windows currently though :(
  • The keys file is by default made read-only to avoid any accidental changes.
  • The batch file created for locking/unlocking keys file is obfuscated automatically to prevent anyone from reading the password.
  • A settings file is also there which has several parameters you can tweak with. It's in a simple JSON format so is highly readable. Even if you delete the settings file, it will be generated again with the default settings. Enjoy.
  • Settings file is created when you run the program for the first time. Settings file is not provided out of the box because some settings are OS dependent and will be initilazed when you run the program for the first time.

Command line tool

The whole process got a whole lot simpler. Just use the command line tool and enjoy. NOTE: The passwords (if required, need to be provided afterwards. Not allowed to provide passwords in the run command because then the passwords will be clearly visible, a security threat.

Syntax
$ path/to/cipher-suite.py [options ....] [File(s)]

Options

  1. help : stuck anywhere? opens this README file in your favorite browser. (Defaults: Edge for Windows and Firefox for Linux)
  2. e/d : encryption/decryption
  3. c/v/h/kt/ct/a1/a2/r1/r2 : Caesar/Vernam/Hill/Keyless Transposition/Column Transposition/AES (Your own key)/AES (random key)/RSA (with personal public key)/RSA (for new key pairs)
    Provide key as the next argument. For RSA, provide key in the format (e, n) or (d, n) {without round brackets and any spaces in between}
  4. pz : create a password protected zip
  5. pk : password protect the key file
NOTE: Follow the order strictly. There must be a blank space between two options.

I made this just for fun. Had a lot of time to kill after placements and was bored to death watching YouTube. So the code is not highly optimized and may look like a spaghetti code. I highly appreciate if you can expand on this idea. I personally found this pretty cool.

About

A CLI for performing encryption on local files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages