A secure password storage system using Dockerized microservices. This project handles user data, applies BCRYPT hashing, and ensures encryption via Google Tink.
The project is divided into three components:
- Client: A front-end interface for user interactions.
- Server1: Manages user data (username/email, SALT, hashed password using BCRYPT).
- Server2: Encrypts the BCRYPT hash using Google Tink.
password_vault/
│
├── client/ # Front-end client (user interface)
│ ├── static/images/ # Static resources (images)
│ ├── templates/ # HTML templates
│ ├── app.py # Client Flask server
│ ├── Dockerfile # Docker configuration for client
│ └── requirements.txt # Python dependencies for client
│
├── server1/ # Microservice 1: User data + BCRYPT hashing
│ ├── app.py # Server 1 main logic
│ ├── Dockerfile # Docker configuration for server1
│ └── requirements.txt # Python dependencies for server1
│
├── server2/ # Microservice 2: Google Tink encryption
│ ├── app.py # Server 2 main logic
│ ├── Dockerfile # Docker configuration for server2
│ └── requirements.txt # Python dependencies for server2
│
├── .gitignore # Ignored files for Git
├── docker-compose.yml # Docker Compose file to orchestrate services
├── LICENSE # License file
└── README.md # Project documentation
- Docker installed and running
- Docker Compose (optional but recommended)
-
Clone the repository:
git clone https://github.com/KyllianGenot/Password-Vault.git cd Password-Vault -
Build and run all services using Docker Compose:
docker-compose up --build
-
Access the project:
- Client: Visit
http://localhost:5002in your browser. - Server1 and Server2 run as backend services.
- Client: Visit
-
Stop the containers:
docker-compose down
- Ensure Docker is installed and properly configured.
- You can modify ports or environment variables in the
docker-compose.ymlfile. - Dependencies are managed using
requirements.txtfor each component.
This project is licensed under the MIT License.
By exploring this repository, you’ll gain hands-on experience with secure password storage, Dockerized microservices, and encryption techniques using BCRYPT and Google Tink. For further details, refer to the README.md in each project folder or open an issue on the repository.