Skip to content
Emin Akif Erzurumlu
All work

Şifre Kasam

A multi-user local password manager in Flutter. It has a known security limitation, and I am not hiding it.

Role
Mobile development
Scope
Solo
Year
2026
The problem

Most password managers are cloud-based. I wanted a vault that stays on one device, needs no internet connection and supports several people sharing the same phone.

Approach
  • A mobile app from a single Flutter and Dart codebase.
  • Records live in an on-device SQLite (sqflite) database; nothing leaves the phone.
  • A multi-user structure where each user’s records belong to their own account.
My part in this

A solo project, entirely mine.

Outcome

Adding, searching, editing records and multi-user access all work. The app is fully offline.

Known limitation

This version stores passwords in plain text in the SQLite database. Anyone with physical or root access to the device can read every record, so the app is not fit for real use today. The planned fix: derive a key from the user’s master password with Argon2id and encrypt records with AES-GCM.

What I learned

A password manager has exactly one job — protecting passwords — and my version does not do it. Realising that taught me to read my own code as an attacker would: "the database stays on the device" does not mean someone with the device cannot read it. You cannot make a security decision without first writing down the threat model.

Built with

Flutter · Dart · SQLite · sqflite