Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Password Manager CLI

A secure command-line password manager written in Go that stores passwords locally using AES-256 encryption and protects access with a bcrypt-hashed master password.

This project was built to practice Go, cryptography, CLI application development, and clean software architecture.


✨ Features

  • 🔒 AES-256 GCM Encryption
  • 🔑 Master Password Authentication (bcrypt)
  • 📁 Encrypted Local Vault
  • ➕ Add Password Entries
  • 📋 List Saved Accounts
  • 👁 View Individual Entry
  • ✏️ Update Existing Entries
  • 🗑 Delete Entries
  • 🔍 Search Entries
  • 🎲 Secure Password Generator
  • 📋 Copy Password to Clipboard
  • 🎨 Colored Terminal Output
  • ⚡ Interactive CLI using Cobra

📂 Project Structure

password-manager/
│
├── auth/
│   ├── auth.go
│   ├── password.go
│   └── prompt.go
│
├── cmd/
│   ├── add.go
│   ├── list.go
│   ├── show.go
│   ├── update.go
│   ├── delete.go
│   ├── search.go
│   ├── generate.go
│   ├── copy.go
│   └── root.go
│
├── crypto/
│   ├── encrypt.go
│   └── key.go
│
├── generator/
│   └── generator.go
│
├── utils/
│
├── vault/
│
├── data/
│
├── main.go
├── go.mod
└── README.md

🚀 Installation

Clone the repository.

git clone https://github.com/artistic-programmer/GoVault.git

Move into the project.

cd GoVault

Install dependencies.

go mod tidy

Run the application.

go run .

🔑 First Run

The first launch asks you to create a master password.

Create Master Password:
Confirm Master Password:

✓ Master password created successfully.

📖 Usage

List all commands

go run .

List All CMD

Add Entry

go run . add

or

go run . add \
--title GitHub \
--username anshu \
--password MyPassword123 \
--url https://github.com \
--notes "Personal Account"

Add Password


List Entries

go run . list

List Title


Show Entry

go run . show <id>

Show Titile


Update Entry

go run . update <id> --password "NewPassword123"

Update Entry


Delete Entry

go run . delete <id>

Delete Entry


Search

go run . search <Title/Username/URL>

Search Entry


Copy Password

go run . copy <id>

Copy Entry


Password Generator

go run . generate

Generate Password

The password generator supports creating custom passwords using the following options.

Use Case Command
Generate a default 16-character password go run . generate
Generate a 24-character password go run . generate --length 24
Generate a 32-character password go run . generate --length 32
Generate a password without symbols go run . generate --symbols=false
Generate a password without numbers go run . generate --numbers=false
Generate a password without uppercase letters go run . generate --upper=false
Generate a password without lowercase letters go run . generate --lower=false
Generate a password using only lowercase letters go run . generate --upper=false --numbers=false --symbols=false
Generate a password using only uppercase letters go run . generate --lower=false --numbers=false --symbols=false
Generate a numeric PIN (6 digits) go run . generate --length 6 --upper=false --lower=false --symbols=false
Generate an alphanumeric password (letters + numbers) go run . generate --symbols=false
Generate a symbols-only password go run . generate --length 12 --upper=false --lower=false --numbers=false
Generate a letters-only password go run . generate --numbers=false --symbols=false
Generate a strong 64-character password go run . generate --length 64

🔒 Security

  • AES-256 GCM Encryption
  • bcrypt Master Password Hashing
  • Cryptographically Secure Random Password Generator
  • Password Input Hidden During Authentication
  • Encrypted Local Storage
  • No Cloud Storage

🛠 Built With

  • Go
  • Cobra CLI
  • bcrypt
  • AES-256 GCM
  • fatih/color
  • aquasecurity/table
  • atotto/clipboard
  • UUID

🚧 Future Improvements

  • Argon2 Key Derivation
  • Remove master.key
  • Export / Import
  • Vault Backup
  • Auto Lock
  • Password Strength Meter
  • Shell Auto Completion
  • Unit Tests
  • GitHub Actions

📄 License

MIT License


Made with ❤️ by Artistic-Programmer

If you found this project useful, feel free to ⭐ the repository.

About

Secure CLI Password Manager built with Go using AES-256 encryption, bcrypt authentication, and Cobra CLI.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages