Skip to content

ApurveKaranwal/Securo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Securo — Secure Password Manager (FastAPI)

Python FastAPI License GitHub Stars GitHub Issues GitHub Last Commit Code Size

Securo is a secure, backend-driven password manager built using FastAPI, focused on encryption, password safety, and real-world security features.
It demonstrates core backend security concepts such as encryption, hashing, password rotation, audit logging, and secure exports.


🚀 Features

  • 🔑 Master Password Protection
    Single master password secures all stored credentials.
    Hashed using SHA-256 + bcrypt (72-byte safe).

  • 🔐 Strong Encryption
    All passwords encrypted using Fernet (symmetric encryption).
    Encryption key is securely managed via .env.

  • 🔄 Password Rotation
    Instantly rotate stored passwords to reduce credential exposure.

  • 🆘 Emergency Password Generator
    Generate strong passwords instantly when needed.

  • 📤 Export Passwords
    Export all saved credentials in JSON format (useful for backups or migration).

  • 🔍 Search & List Entries
    Search saved passwords by service name or list all stored services with metadata.

  • 📊 Password Strength Scoring
    Scores passwords based on length and complexity.

  • 🕵️ Access Logging
    Tracks password access events for auditing and activity monitoring.


🛠 Tech Stack

Component Technology
Backend FastAPI
Database SQLite + SQLAlchemy ORM
Security bcrypt (<4.0), SHA-256, Fernet Encryption
Env Management python-dotenv
API Docs Swagger UI (auto-generated)

📂 Project Structure

Securo/
├─ backend/
│  ├─ main.py
│  ├─ models.py
│  ├─ database.py
│  ├─ requirements.txt
│  └─ .env
├─ frontend/
│  ├─ index.html
│  ├─ style.css
│  └─ script.js
├─ README.md
└─ LICENSE

⚙️ Setup & Run Locally

1️⃣ Clone the repository

git clone https://github.com/your-username/securo.git
cd securo/backend

2️⃣ Create a virtual environment

python -m venv venv
venv\Scripts\activate # Windows

source venv/bin/activate # Linux/Mac

3️⃣ Install dependencies

pip install -r requirements.txt

4️⃣ Create .env file

Create a .env file in the root directory and add your Fernet key:

FERNET_KEY=your_generated_fernet_key_here

To generate a key:

from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())

5️⃣ Run the server

uvicorn main:app --reload
Server URL: [http://127.0.0.1:8000](http://127.0.0.1:8000)  
Swagger Docs: [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs)

🔌 API Endpoints Overview

🔐 Security

  • POST /set-master → Set master password

🔑 Password Management

  • POST /add → Add new password
  • GET /retrieve → Retrieve password (master protected)
  • PUT /rotate → Rotate password
  • DELETE /delete → Delete password

🧰 Utilities

  • GET /list → List all services
  • GET /search → Search services
  • GET /export → Export passwords (JSON)
  • GET /health → Health check

🔒 Security Notes

  • Master password is never stored in plain text.
  • Passwords are encrypted at rest using Fernet.
  • bcrypt version is pinned (<4.0) for compatibility.
  • .env file is excluded from GitHub commits for safety.

📸 Demo & Screenshots

Feature walkthroughs and short demos are available on LinkedIn:

  • Password creation
  • Secure generation
  • Master password flow
  • JSON export
  • Password rotation
  • Backend code snippets

📌 Why This Project?

Securo was built to:

  • Practice real-world backend security techniques.
  • Understand hashing, encryption, and secure password handling.
  • Build a production-style FastAPI app.
  • Showcase backend skills for internships and developer roles.

🤝 Contributions

Contributions, suggestions, and pull requests are welcome.
Feel free to fork, improve, and build on top of this project.


👤 Author

Apurve Karanwal
Backend Developer | FastAPI | Security Enthusiast

LinkedInGitHub


🛡️ License

This project is distributed under the MIT License — feel free to use and modify with attribution.

About

Securo is a secure and simple password manager built with FastAPI and SQLAlchemy. It allows users to generate strong passwords, store them encrypted, and retrieve or delete them safely. The project demonstrates core backend concepts including API development, database integration, encryption, and input validation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors