Description: Password manager (load, search, add, edit, delete, save, save-and-quit) with AES encryption and OOP; the correct master password is required to gain entry into the manager.
Most of the project was developed within March 1-25 and August 16-18, 2025.
All the source code is written in the src folder (Main.java, PwConsole.java, PwInfo.java, PwManager.java).
By the way, encryption/decryption requires a provider (like SunJCE) to work, but the JDK probably includes SunJCE by default already.
- Run the main-method
- Press ENTER
- Enjoy
• Main.java: contains the main-method, which contains the console.run() function that runs functions of the PwConsole class.
• PwConsole.java: outlines every function of the PwManager class that involves direct user-interaction (incl. load/search/add/edit/delete/save entries; gatekeeping the user from the program unless they know the correct master-password; changing the master-password).
• PwManager.java: has the core functions of the password manager, incl. encryption/decryption and file management; also uses contents of the PwInfo class to create an ArrayList called pwInfoList in which the user's entries are loaded.
• PwInfo.java: describes the variables/features of the pwInfoList ArrayList of the PwManager class; also includes getters and setters.
• Method of encryption: Advanced Encryption Standard (AES)
• Core encryption/decryption functions (3, all in PwManager.java): getKeyFromPassword(String masterPw), encryptObject(Serializable object, String masterPw), decryptObject(SealedObject sealedObject, String masterPw)
• Plain-text used to derive key: master password
• Key length: 256 bits
• Key-expansion iteration-count: 256
Thank you for your attention.
~ Seohyun