Locker is a secure password management system that allows users to store and retrieve passwords safely using encryption. This application demonstrates secure handling of sensitive data using Java cryptography.
- Secure user authentication with master password
- AES-GCM encryption for password storage
- JWT-based authentication for API security
- Modern, responsive UI with React and Tailwind CSS
- Password generation functionality
- Search and filter stored passwords
- Copy passwords to clipboard with a single click
- Java Spring Boot
- Spring Security
- MongoDB for data storage
- Java Cryptography (AES-GCM)
- JWT for authentication
- React with TypeScript
- Vite.js for development and building
- Tailwind CSS for styling
- React Router for navigation
- Axios for API requests
- Java 17 or higher
- Node.js 16 or higher
- MongoDB
-
Start MongoDB:
mongod --dbpath=/path/to/data/db -
Navigate to the project root:
cd /path/to/locker -
Run the Spring Boot application:
./mvnw spring-boot:runThe backend will start on http://localhost:8080
-
Navigate to the frontend directory:
cd /path/to/locker/frontend -
Install dependencies:
npm install -
Start the development server:
npm run devThe frontend will be available at http://localhost:5173
-
Master Password: All password entries are encrypted using the user's master password. The master password itself is never stored in plain text; only a securely hashed version is saved.
-
AES-GCM Encryption: Password entries are encrypted using the AES algorithm in GCM mode, providing both confidentiality and integrity.
-
Initialization Vector (IV): Each password entry uses a unique IV, ensuring that even identical passwords result in different ciphertexts.
-
Password Salting: User master passwords are salted before hashing to prevent rainbow table attacks.
-
Stateless JWT Authentication: API security is implemented using JWT tokens, allowing for stateless authentication.
- Register an account with a secure master password
- Log in using your credentials
- Add password entries for various websites and services
- View, edit, or delete password entries as needed
- Search for specific password entries
- Securely log out when done
This application is a demonstration of secure password management principles. For production use, consider the following additional measures:
- Use HTTPS for all communications
- Implement rate limiting for authentication endpoints
- Set up proper backup and disaster recovery procedures
- Implement multi-factor authentication
- Add session timeout and automatic logout features