Want to store your private data, passwords, in the goofiest way possible? This is the right repo for you shit!
a.k.a RONIN PASSWORD MANAGER
Because remembering passwords is a scam and your brain deserves PTO.
What is this?
This is a terminal-based password manager that:
Locks your secrets behind math so intense it scares away both hackers and your future self
Judges your terrible password choices in real time
Lets you stash random encrypted nonsense like a digital raccoon
Built with:
textual (so it looks fancy in your terminal)
(so it looks fancy in your terminal) cryptography (so your data isn’t just sitting there naked)
(so your data isn’t just sitting there naked) Vibes (questionable)
Disclaimer (read this or regret it later)
If you forget your master password: you are done. finished. spiritually bankrupt.
There is no “forgot password”
There is no “admin override”
There is only you and your poor life choices
Features
1. Master Password
You get one key. Lose it and your vault becomes modern art.
2. Password Vault
Stores passwords encrypted
Shows them back to you because apparently you can’t be trusted to remember anything
No cloud. No sync. Just you and your local chaos
3. Password Generator
Generates strong passwords like: gH#9!xP@2...something you will NEVER remember
You will forget it immediately
That’s the point
4. Password Strength Checker
Rates your passwords from:
“cracked before you blink”
“my grandma guessed this”
“FORTRESS. NSA is tired.”
5. Breach Checker
Uses HaveIBeenPwned API to tell you:
“Yeah… this password has been leaked 47,000 times. Bold choice.”
6. Custom Data Vault
Store literally anything:
passwords
notes
secrets
grocery lists
emotional damage
Encrypted. Hidden. Questionable.
THE DASHBOARD! (UX Flow after login)
Its just the screen that appears after you log in. The below widgets are sitting in front of you now:
Passwords : Displays all your random passwords, and poorly thought passwords. Also has a button to add password, which gives you two options: Create your own password, and check its strenght (thats a bold choice aint gonna lie) Generate a random password, of whatever length you want (default is 16)
: Displays all your random passwords, and poorly thought passwords. Also has a button to add password, which gives you two options: Custom Data : This widget displays all your custom data You can store anything you want here, and i mean anythin, from your diary, to your secrets, to your love letter you always wanted to give your crush but will prolly never will, and heck even your man grocery list. A button to add some custom data is present
: This widget displays all your custom data
And the some other buttons:
Logout button : It just logs you out, man
If there are any other things in the UI, its textual's fault, not mine. Blame Will McGugan...
How It Works (for people who like big words)
PBKDF2 + SHA256 → derives encryption key
Fernet → symmetric encryption
SHA3-512 → hashes your master password
Local JSON files → your entire digital existence
Translation:
It’s secure enough unless you do something dumb.
Setup
pip install textual cryptography requests python ronin.py
First run:
You set a master password
The app stares into your soul and says “don’t forget this”
You forget it anyway
Usage
Start
python ronin.py
Login (or fail repeatedly)
Add passwords
Generate passwords
Question your past decisions
Design Philosophy
No cloud → because trust issues
No recovery → because consequences build character
No hand-holding → because you’re an adult (allegedly)
Known Issues
You might lock yourself out forever
You might realize how bad your passwords are
You might develop trust issues with your own memory
Final Words
This app does not care about:
your feelings
your convenience
your ability to remember things
It only cares about one thing:
keeping your secrets locked away like a dramatic anime backstory
Motto
“Strong passwords. Weak life decisions.”
Bonus Tip
If your master password is:
password123
Just uninstall the app. Start over. Start life over.
How It Actually Works (Flow + Explanation)
Flow (high-level, no nonsense)
[Start App] | v [Master file exists?] ---- no ----> [Setup Screen] | | yes v | [User sets master password] v | [Login Screen] v | [Hash + salt saved] v | [Enter master password] v | [Exit → restart app] v [Verify hash] | wrong ----> [Insult user] → retry | correct v [Derive encryption key (PBKDF2)] | v [Dashboard] | | v v [Passwords] [Custom Data] Passwords: Add → encrypt → store JSON View → decrypt → display Custom Data: Add → encrypt → save .enc file View → decrypt → display Extras: - Password strength → entropy math - Breach check → API call (HIBP)
What’s Actually Happening Under the Hood
Your master password is never stored directly → It’s hashed with SHA3-512 + salt
That same password is used to: → Derive an encryption key using PBKDF2 (100k iterations, so attackers suffer)
That key is fed into: → Fernet (AES-based symmetric encryption)
When you save something: → Plaintext → encrypted → stored on disk
When you view something: → Encrypted → decrypted → shown to your unworthy eyes
If the password is wrong: → Decryption fails → you get nothing → life lesson delivered
In Simple Terms
You:
type password → get key → lock/unlock secrets
Program:
“I will protect this with cryptography and also emotionally damage you along the way.”
good luck ????
LICENSE
Do whatever you want with it.
Very very very very important note: