/letmepass

Android password manager with a modern UI and cloud storage support

Primary LanguageJava

LetMePass

Android password manager with a modern UI and cloud storage (via Google Drive) support

Intro screen Creation screen Passwords screen

Why?

This project was initially developed as part of coursework for an A-level in Computer Science. The aim of the project was to create a modern, free, open source password manager that resolved some of the gripes that I had with existing solutions, such as: dated and difficult-to-use UI; weak or unexplicated encryption routines; no/limited mobile support; and no free cloud storage support.

LetMePass links in with Google Drive to allow for automatic backup and persistence of password databases, with no central service or premium options or subscriptions. It is an Android application (sorry iOS users!) and therefore is as portable as your device itself; it is further designed to be compatible with almost any Android device.

Features

  • Password, folder, and data storage in the password database
  • Unlimited password databases
  • Password security checking, with optional breach checking
  • Local database file support
  • Cloud database file support (with Google Drive)
  • Favourite passwords for organization
  • Search and sort passwords

Technical Details

  • AES-256 with GCM encryption of the password database (with hybrid random/sequential IV generation)
  • Custom file format with header integrity (SHA256 hash prepended to database payload and then encrypted)
  • Argon2 (winner of the Password Hashing Competition) used to derive keys for encryption from passwords

Screenshots

Intro screen Creation screen step 1 Creation screen step 2 Passwords screen Password viewing screen Search functionality

Development Progress

The app is not fully complete (as evidenced by the 'TODOs' in the codebase). Most features are implemented, but currently several features that are somewhat integral to everyday use are lacking, including settings (i.e. changing app and database settings), auto-loading databases on app launch, and database locking on app minimize.

Libraries Used