PassVault
A secure, lightweight, and offline password manager for Android built with Kotlin.
PassVault is a secure, lightweight, and completely offline password manager for Android. It empowers you to store and manage your credentials locally with military-grade encryption (AES-256), ensuring your data never leaves your device.
Built with a focus on privacy and usability, PassVault features a modern Material Design interface, robust import capabilities (seamlessly migrating from KeePass and Bitwarden), and advanced security options like biometric login and encrypted backups. Whether you're organizing passwords with custom categories or generating strong credentials, PassVault keeps your digital life secure and accessible.
Core Features
- [x] Secure PIN Authentication
- [x] Biometric (Fingerprint) Login
- [x] Encrypted Database (AES-256)
- [X] Argon2Kt for file encryption
- [x] Add, View, Edit, & Delete Passwords
- [x] In-app Password Generator
- [X] Encrypted Import/Export (for backups and transfer)
- [X] Encrypted Automatic Backups
- [X] Robust Import System (KeePass CSV/KDBX & Bitwarden JSON)
- [X] Modern Material Design UI
- [X] Categories/Labels
- [X] Password strength scoring
- [X] Custom field templates
Planned Features
- [ ] Secure Notes (for storing non-password secrets)
- [ ] Desktop Version
- [ ] QR Code Password Sharing
- [ ] TOTP generator
- [ ] Migrate to Compose
Tech Stack & Architecture
This project follows the MVVM (Model-View-ViewModel) architecture.
- Language: Kotlin
- UI: XML Layouts with ViewBinding and Material Design Components
- Database: Room Persistence Library
- Architecture: ViewModel, Repository, LiveData
- Security: Android Keystore, AES/CBC/PKCS7 Encryption, Argon2
Requirements
- Android 8.0 (Oreo) or higher
Permissions
PassVault is designed to be a completely offline password manager. It does not require any permissions that would allow it to connect to the internet.
android.permission.USE_BIOMETRIC- Used to allow fingerprint authentication.android.permission.READ_EXTERNAL_STORAGE- Used to import encrypted backups.android.permission.WRITE_EXTERNAL_STORAGE- Used to export encrypted backups.