A small Java Swing password manager I built for my Java class final assignment.
This is a short, simple, fun little project that stores login entries locally in a desktop app with a clean dark UI. I decided to put it on GitHub in case it helps someone who is learning Java, Swing, file handling, or basic encryption ideas.
This app lets you:
- add password entries
- edit existing entries
- delete entries
- search by title or username
- view saved account details in a simple dashboard
- store passwords in a local CSV file with basic Vigenere-cipher-based encryption
It is designed for learning and demonstration, not for serious production security.
| Main Dashboard | Entry Form |
|---|---|
![]() |
![]() |
The app uses a dark desktop-style layout with a searchable sidebar, a detail panel, and a simple add/edit dialog.
- Java
- Java Swing
- local CSV storage
- a custom Vigenere cipher utility
src/PasswordVault.java- main app window and UI logicsrc/EntryDialog.java- add/edit dialogsrc/PasswordEntry.java- password entry model and CSV conversionsrc/VigenereCipher.java- encryption/decryption helper
git clone <your-repo-url>
cd Java-Password-ManagerCreate .env in the project root directory, not inside src/.
VIGENERE_KEY=your-secret-key-hereIf no .env file is found, the app falls back to a default key.
cd src
javac PasswordVault.java PasswordEntry.java EntryDialog.java VigenereCipher.java
java PasswordVaultWhen the app starts, it loads entries from a local vault.csv file if one exists. From there you can:
- create a new entry with title, username, password, and URL
- click an item in the sidebar to view its details
- search entries live from the top search bar
- edit or delete entries from the toolbar
- reveal or copy stored values from the detail panel
If vault.csv does not exist yet, the app will simply start with an empty vault.
This project is mainly for coursework and learning.
It uses a Vigenere cipher to avoid storing passwords as plain text in the CSV file, but it is not meant to be a fully secure or production-ready password manager. If you need real password protection, use a well-established password manager with modern encryption and security practices.
I wanted to share a class project that I had fun building. If you are learning Java Swing or working on a similar school project, maybe this gives you a useful starting point or a few ideas.
If it helps you, that is already a win.

