Skip to content

Latest commit

 

History

History
154 lines (111 loc) · 5.16 KB

README.md

File metadata and controls

154 lines (111 loc) · 5.16 KB
Logo

Enigma

Enigma is a web-based cryptography tool that allows you to encrypt, decrypt, and attack texts and images using a variety of classic and modern ciphers, including block ciphers

Deployed Project: https://enigma-crypto.herokuapp.com

Note: The project is currently offline due to because heroku free tier no longer exists.

Features

Enigma supports the following cryptsystems:

Classic ciphers

Classic

The following ciphers are implemented for text encryption only:

  • Shift cipher
  • Affine cipher
  • Substitution cipher
  • Hill cipher
  • Permutation cipher
  • Vigenere cipher

Block ciphers

Block

The following cipher are implemented for image encyption:

  • Triples DES
  • AES
  • Simplified DES(text only)

Public ciphers

Block

The following ciphers are implemented for text encryption only:

  • RSA
  • Rabin
  • ElGamal (Discrete Logarithm)
  • ElGamal (Eliptic Curve)

Tech Stack

  • Python
  • Flask
  • Heroku
  • angular

Getting Started

This app is deployed on website, however if you want to deploy it in your local machine you need to:

To begin, install Angular-CLI with npm using the following command:

npm install -g @angular/cli

Next, please follow the next steps to install the requirements:

# We assume you are in the root folder of the repo
cd backend

# It's recommended to do the following command inside a virtual environment
pip install -r requirements.txt

Set the FLASK_APP environment variable:

(Unix/Mac) export FLASK_APP=colossus
(Windows) set FLASK_APP=colossus
(Powershell) $env:FLASK_APP="colossus"
  1. Run the application backend locally:
flask run

Now for the frontend:

# We assume you are in the root folder of the repo
cd frontend

npm install 
ng serve 

Now you can go to http://localhost:4200 and test the app.