Skip to content

testroyer/enigma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Enigma Machine

A C/C++ implementation of the historic Enigma machine — the cipher device used by Nazi Germany during World War II. The project relies solely the core mechanics of the original machine, including rotor substitution, stepping, and reflector logic, providing both encryption and decryption functionality. Rotors are fully customizable, allowing users to configure wiring, starting positions, and ring settings to simulate different Enigma variants.

Screenshots

Welcome screen Welcome Screen

Encyrpt screen Encryption Screen

Set screen Set Screen

Getting Started

Prerequisites

  • C or C++ compiler (e.g., GCC, Clang)

Build

Clone the repository and compile the source files using your preferred compiler. For example:

git clone https://github.com/testroyer/enigma.git
cd enigma
make 

Or manually, with GCC:

g++ ./src/*.cpp -o .build/enigma

Or with Clang:

clang++ ./src/*.cpp -o ./build/enigma

To clean:

make clean

Usage

Run the script after compiling

make run

Or manually:

./build/enigma

Project Structure

  • src/ — Source code
  • build/ - For compiled programs
  • external/ - For git submodules

Contributing

Contributions are welcome! Please open issues or pull requests.

License

See the LICENSE file for details about this project's license.
This project is currently under GNU GENERAL PUBLIC LICENSE v3.0

About

A C/C++ implementation of the historic Enigma machine — the cipher device used by Nazi Germany during World War II.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors