https://github.com/tywil04/zero
An implementation of Ceaser, Vigenere and Vernam Ciphers written in Python using Tkinter
https://github.com/tywil04/zero
ceasar-cipher python tkinter vernam-cipher vigenere-cipher windows
Last synced: 3 months ago
JSON representation
An implementation of Ceaser, Vigenere and Vernam Ciphers written in Python using Tkinter
- Host: GitHub
- URL: https://github.com/tywil04/zero
- Owner: tywil04
- License: gpl-3.0
- Created: 2024-03-01T22:51:24.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-01T22:59:01.000Z (over 1 year ago)
- Last Synced: 2025-01-17T03:24:44.497Z (5 months ago)
- Topics: ceasar-cipher, python, tkinter, vernam-cipher, vigenere-cipher, windows
- Language: Python
- Homepage:
- Size: 229 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Zero
This is an application that supports the encoding and decoding of three popular ciphers:
- [Ceasar Cipher](https://en.wikipedia.org/wiki/Caesar_cipher)
- [Vigenere Cipher](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher)
- [Vernam Cipher](https://en.wikipedia.org/wiki/Gilbert_Vernam)This is a application and it is written in Python. All the cipher implementations are my own. For the UI it uses Tkinter with my custom theme [minimal-tkinter](https://github.com/tywil04/minimal-tkinter). All the code is in one file, however it wouldn't be difficult to refactor it and have seperate files for each cipher.
# Screenshots:
# Usage:
Run `cipher.py`## Program Settings:
#### Ceasar Cipher and Vigenere Cipher Options:
- Keep Character Case: Keeps the character case in the output. When the setting is on: `Test -> Docd` and when the setting is off: `Test -> docd`.
- Keep Unknown Characters: Any Characters that don't work in the cipher (most puncutation, etc) gets put in the ciphertext at the same position. For example, when the setting is on: `test! -> docd!` and when setting is off: `test! -> docd`.#### Vernam Cipher Options:
- Keep Character Case: Same as Ceasar Cipher and Vigenere Cipher
- Seperate Binary: Splits up output binary string into 8-bit blocks. When the setting is on: `test -> 00000100000100110000010100000100` and when setting is off: `test -> 00000100 00010011 00000101 00000100`.## Encoding/Decoding:
To encode with a particular cipher do the following steps:
- Select a Cipher via the Entry that says `Select Cipher` - Make sure you choose an option that says encode if you want to encode or decode if you want to decode.
- Enter the text you wish to encode/decode into the input that says `Enter Plaintext/Ciphertext`.
- Enter a key into the input that says `Enter Key` - Becareful here, some ciphers only allow certain types of keys. For example, a Ceasar Cipher will only work with an integer.
- Click Compute and the output will be displayed in the output window.