security
Password Encryption Program
Early Python/Tkinter password manager that saves usernames with passwords encoded by a home-made rotation cipher, and decodes them on request with the same key.
Role
Developer
Problem
A first pass at encryption basics: keep saved passwords out of plaintext by substituting each character through a key. It's a Caesar-style substitution, not real cryptography, and the key itself is saved unencrypted in key.txt next to the password file.
Tech Stack
PythonTkinter
How It Works
- 01A Tkinter login window guards a menu with Add Password, Get Password, See list, and Set Key.
- 02Set Key takes a rotation number and builds a substitution table by shifting every letter and digit along a combined a–z / 1–9 / A–Z cycle, then writes the table to key.txt.
- 03coding.py is a closure-based dispatcher that responds to messages (set_key, import_key, export_key, encoding, decoding). Add Password loads the key and appends the username and encoded password to mypasswords.txt.
- 04Get Password looks up a username and decodes its entry by inverting the substitution table.
What I Learned
- –A first, simple encode/decode exercise before working with the real primitives (ECC, AES-GCM) used later in the Secure Voting System project.
- –In hindsight it shows why home-made ciphers fail: a fixed character substitution keeps the length and repeated characters, and the key sits in plaintext beside the data it protects.
- –Writing coding.py as a function that dispatches on message strings was an early exercise in message passing and hidden state, before reaching for classes.