DavidFM43 / 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.

Home Page:enigma-kappa.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

enigma-kappa.vercel.app

License:Apache License 2.0


Languages

Language:JavaScript 81.2%Language:SCSS 8.4%Language:CSS 5.5%Language:HTML 2.4%Language:TypeScript 1.4%Language:Python 1.0%Language:Makefile 0.0%Language:Procfile 0.0%