Skip to content

noa-rpache/CryptMyPassword

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

CryptMyPassword πŸ”

A secure, open-source password manager browser extension that generates and stores strong passwords with quantum-enhanced entropy, protecting your digital identity with modern cryptography.

Table of Contents

Purpose

CryptMyPassword solves the problem of password management and secure generation. It provides:

  • Automatic Password Generation: Create cryptographically secure passwords using quantum-enhanced entropy
  • Transparent Storage: Securely store passwords for websites you visit without manual intervention
  • HIBP Integration: Check if your passwords have been compromised in known data breaches
  • Device Synchronization: Sync passwords across multiple devices safely
  • Zero-Knowledge Architecture: Your passwords are encrypted and stored securely; the extension never transmits unencrypted credentials

Features

✨ Core Features

  • Secure Password Generation: Quantum-enhanced entropy for maximum security
  • Auto-Save: Automatically save passwords when you register/login on websites
  • Breach Detection: Check passwords against HIBP (Have I Been Pwned) database
  • Multi-Device Sync: Synchronize passwords securely across your devices
  • Smart Detection: Automatically detects password fields and registration forms
  • Show/Hide Toggle: Easily view or hide passwords when needed
  • One-Click Copy: Quickly copy passwords to clipboard
  • Easy Management: Delete passwords you no longer need

πŸ”§ Technical Features

  • FastAPI backend with MongoDB storage
  • Docker containerization for easy deployment and development
  • Quantum randomness integration for enhanced entropy

Installation

For Users

Available in upcoming releases

For Developers

Prerequisites

  • Docker
  • Android Studio (for mobile development)
  • python3

Mobile setup

  • Clone the repository
  • Open the project in Android Studio
  • Launch the app on a connected device or emulator

Backend Setup

# Clone repository
git clone https://github.com/noa-rpache/CryptMyPassword.git

cd server

cp .env.example .env # Modify the values as needed

# Create a virtual environment
python3 -m venv <nombre-env>

source <nombre-env>/bin/activate  # Linux
<nombre-env>\Scripts\activate     # Windows

pip install -r requirements.txt   # Install dependencies

# Launch FastAPI server
python -m fastapi dev main.py --host 0.0.0.0 --port 8000
# Launch MongoDB
docker-compose up

Extension Setup

# Load in Firefox
# 1. Navigate to about:debugging#/runtime/this-firefox
# 2. Click "Load Temporary Add-on"
# 3. Select manifest.json in the browser/ folder

# Load in Chrome
# 1. Navigate to chrome://extensions/
# 2. Enable "Developer mode"
# 3. Click "Load unpacked"
# 4. Select the browser/ folder

Usage

For End Users

Generate a Secure Password

  1. Visit any website with a registration form
  2. Click the "Generar contraseΓ±a segura" button in the extension popup
  3. Complete the registration and submit the form
  4. Your password is automatically saved

Use a Saved Password

  1. Visit a website you've registered on before
  2. Click "Usar contraseΓ±a guardada" if available
  3. Your saved password is filled in automatically

Manage Your Passwords

  1. Click the extension icon in your browser toolbar
  2. View all saved passwords with domain, username, and encrypted password
  3. Check for breaches with the "Verificar contraseΓ±as" button
  4. Delete passwords with the πŸ—‘οΈ button
  5. Copy passwords with the πŸ“‹ button
  6. Toggle visibility with the πŸ‘οΈ button

Verify Password Security

  1. Click the "Verificar contraseΓ±as" button in the dashboard
  2. The extension checks each password against HIBP
  3. Breached passwords are highlighted in red with breach count

API Endpoints

POST   /password                 # Generate a new password
GET    /password                 # Get all stored passwords
GET    /password/{domain}        # Get password for specific domain
POST   /password/save            # Save a password
DELETE /password/{domain}        # Delete a password
GET    /audit                    # Check all passwords against HIBP
GET    /synchronise              # Get linked devices
POST   /synchronise              # Link a new device

Configuration

Add an API_KEY to both server and browser .env files.

Architecture

CryptMyPassword/
β”œβ”€β”€ browser/                     # WebExtension and dashboard
β”œβ”€β”€ server/                      # FastAPI Backend
β”‚   β”œβ”€β”€ main.py                  # API routes
β”‚   β”œβ”€β”€ requirements.txt         # Python dependencies
β”‚   β”œβ”€β”€ dockerfile               # Docker configuration
β”‚   β”œβ”€β”€ docker-compose.yml       # Docker composition
β”‚   └── ...                      # Initialization scripts
β”œβ”€β”€ mobile_app/                  # Mobile app
└── docs/                        # Documentation

Communication Flow

  1. Content Script detects password fields on web pages
  2. Browser Extension shows UI for password generation/saving
  3. Background Worker communicates with FastAPI backend
  4. Backend API manages MongoDB storage and HIBP checks
  5. Database securely stores encrypted credentials

Contributing

We welcome contributions! See CONTRIBUTING.md for detailed guidelines on:

  • Setting up your development environment
  • Code standards and style guide
  • Running tests
  • Submitting pull requests
  • Commit message conventions

Quick Contribution Guide

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test your changes
  5. Commit with conventional commits
  6. Push to your branch
  7. Open a Pull Request

License

This project is licensed under the MIT License - see LICENSE file for details.

Support

Getting Help

Roadmap

  • User installation
  • Internationalization (i18n)
  • Improve form fields detection

Community

  • Follow development on GitHub
  • Join discussions and share feedback
  • Report bugs and request features
  • Contribute code, docs, or translations

Attrbution

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors