Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Enigma-inspired Cipher GUI

This is a small Python project that simulates a very simplified Enigma-inspired cipher tool using a Caesar shift. It includes a basic Tkinter interface for entering text, encrypting messages, decrypting messages, and resetting the input fields.

This project was made as an early Python learning project. I am keeping it on GitHub as part of my portfolio to show my progress in Python, GUI development, string manipulation, and project documentation.

Features

  • Encrypts text using a fixed Caesar shift of 3
  • Decrypts text using the same shift
  • Provides a simple Tkinter graphical interface
  • Allows the user to reset input and output fields
  • Uses only Python's standard library

Installation

This project does not require any external Python packages.

To run it, make sure Python 3 is installed on your computer. Then open the enigma folder in a terminal and run:

python3 enigma.py

On Windows, you may need to use:

python enigma.py

Usage

After running the program, a small Tkinter window opens.

Enter the text you want to encrypt or decrypt into the input field. Then choose the correct option in the interface and run the conversion. The converted text will appear in the output field.

The current version uses a fixed Caesar shift of 3. This means each letter is shifted three positions forward for encryption and three positions backward for decryption.

Example:

Plain text: hello
Encrypted: khoor
Decrypted: hello

Repository contents

File/Folder Purpose
enigma.py Main Python script containing the GUI and cipher logic
images/ Folder containing images used by the project
proposal.md Short written explanation of the original project idea

Current limitations

This project is an early prototype and does not represent the real historical Enigma machine. At the moment, it uses a Caesar cipher rather than rotor-based encryption.

Current limitations include:

  • The encryption method is very simple
  • The shift value is fixed at 3
  • The GUI and cipher logic are currently in the same file
  • There are no automated tests yet
  • The project still needs cleaner error handling and documentation

Planned improvements

I plan to improve this project by:

  • Separating the cipher logic from the GUI code
  • Adding unit tests for encryption and decryption
  • Allowing the user to choose the shift value
  • Improving the layout of the Tkinter interface
  • Adding clearer comments and docstrings
  • Eventually adding a more realistic rotor-inspired encryption system

Skills demonstrated

This project demonstrates:

  • Basic Python programming
  • Tkinter GUI development
  • String manipulation
  • Conditional logic
  • Simple encryption and decryption logic
  • Early project documentation
  • Planning future improvements

What I learned

Through this project, I practised building a small Python application with a graphical interface. I also learned how simple encryption logic can be implemented using character operations in Python.

The project is still simple, but it is useful as a starting point for improving my code structure, documentation, and testing habits.