Skip to content

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.

License

Notifications You must be signed in to change notification settings

DavidFM43/enigma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published