Skip to content

bhushhhhann/cipher-vault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Cipher Vault β€” Python CLI Password Manager

Cipher Vault is a simple, lightweight Python command-line password manager that stores passwords in XOR-encrypted form.
It allows you to add, update, delete, list, and securely access passwords saved for different websites.

Passwords are never stored in plain text β€” they are encrypted and can only be decrypted using your PIN.


⭐ Features

  • πŸ”’ Secure XOR-based encryption
  • πŸ“„ Store website name, username, and encrypted password
  • βž• Add new passwords
  • ✏️ Update existing passwords
  • ❌ Delete saved passwords
  • πŸ‘ View/decrypt password (PIN required)
  • πŸ“ Auto-creates & manages password_manager.txt JSON file
  • 🧠 Simple, easy-to-understand reversible encryption
  • πŸ–₯ Fully terminal-based CLI app

πŸ›  How the Encryption Works

Cipher Vault uses a reversible XOR cipher: encrypted_value = ord(character) ^ key original_character = chr(encrypted_value ^ key)

  • key = 123
  • Each character of the password is encrypted to a number
  • Only someone with the correct PIN (6969) can decrypt it

This technique is lightweight and perfect for learning basic cryptography.


πŸ“ Project Structure

cipher-vault/ β”‚ β”œβ”€β”€ cipher_vault.py # Main project code β”œβ”€β”€ password_manager.txt # JSON file storing encrypted passwords └── README.md # Project documentation


▢️ How to Run

  1. Install Python (3.x)
  2. Download or clone this repository
  3. Open a terminal in the project directory
  4. Run: python cipher_vault.py
  5. Use menu options (1–6) to manage your passwords.

Menu Options

  1. List all saved website passwords
  2. Add a new password
  3. Update an existing password
  4. Delete a password
  5. Access (View) a password ← requires PIN
  6. Exit the program

Example Stored Data (password_manager.txt)

[
    {
        "website": "google.com",
        "username": "bhushan",
        "password": [171, 85, 90]
    }
]
**password is stored in encrypted integer form β€” never as plain text.

πŸ‘¨β€πŸ’» Author

Bhushan Bhutada
Python beginner exploring encryption techniques and building practical CLI tools.
**