2fa

A two-factor authenticator built to securely manage your one-time passwords
AppID:app.ninesevennine.twofactorauthenticator
Author:979
License:EUPL-1.2
Donation:Webpage
InRepoSince:2026-06-04
LastRepoUpdate:2026-06-04
LastAppUpdate:2026-06-03
LastVersion:1.1.4
Categories:Security
APK source:Codeberg/Forgejo/Gitea
Google Play:Check if it's there
icon

Overview

2fa's only purpose is to provide single-use codes known as one-time passwords. It is a two-factor authenticator, and the concept is nothing new. There are plenty of other authenticators and alternatives with more features but with worse security and privacy than ours. We built 2fa to take full advantage of your device's hardware security, along with the latest cryptographic standards, to keep your accounts safe. The app is offline and includes unique features that no other authenticator app offers.

Features

Security

All accounts are stored inside the app's internal directory using our format with the .2fa extension. They are encrypted with AEGIS-256 and the key used is derived from hashing your passphrase with Argon2id. This method is used for both exports and internal storage, with the only difference being that internal storage takes an additional step by running the hash through HKDF using SHA3-512 with an additional random salt on every disk write.

If you choose to use biometrics, the passphrase hash must be stored. It's encrypted using the Android Keystore with AES-GCM and StrongBox (when available). The result is saved in the no_backup folder, in a file named unlock_passphrase_hash.bin, meaning it won't be included in system backups or when transferring to a new device. Also, the biometric key can become invalid due to several reasons. If this happens, decrypting won't be possible, and you will have to enter your passphrase, after which you will be prompted to confirm biometrics in order to re-establish them.

Translations

2fa is already available in several languages, and we would love your help adding more or improving the existing ones. You can do this by contributing to our Codeberg Weblate.

Support

If you have any problems using 2fa, find a bug, or just have a question, don't hesitate to reach out to us on Discord. If you would like to support and accelerate our work, please consider donating.

WhatsNew:

Changes since the 1.1.3 release:
- Improved apk size and memory footprint.
- Switched from Eclipse Adoptium to OpenJDK.
- Updated Android `kotlin` to `2.4.0`.
- Updated Rust `aegis` to `0.9.12`.
- Updated Rust `rustc` to `1.96.0`.

Download Metadata Source Issues ChangeLog
1.png 2.png 3.png 4.png
While you can download the APKs here directly, you should preferably use an F-Droid client so the app stays up-to-date on your device. Some clients have this repo enabled by default, e.g. Neo Store, Droid-ify, or, of course, the IzzyOnDroid client by Sunil. With others (like the official client) you'll have to add this repo manually (see the hint on top of the package list for how to do that).

Packages

Version 1.1.4 (2026-06-04) verified help icon

Android Versions:
  • Target: 16.0
  • MinVer: 14.0
  • ABIs: arm64-v8a
Permissions: help icon
Malware-Check:Passed help icon
12 Libraries detected: help icon

Download (8.3 M)