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.
- 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
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.pyOn Windows, you may need to use:
python enigma.pyAfter 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
| 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 |
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
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
This project demonstrates:
- Basic Python programming
- Tkinter GUI development
- String manipulation
- Conditional logic
- Simple encryption and decryption logic
- Early project documentation
- Planning future improvements
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.