Authenticator

Simple, native, open source 2-FA Client for iOS, which never connects to the internet - built by @mattrubin.me

Open Source

Authenticator Source Code

Author

mattrubin

Description

Two-Factor Authentication Client for iOS

#2fa#authenticator#ios#one-time-passwords#swift#two-factor-authentication

Homepage

https://mattrubin.me/authenticator

Repository

  • LicenseOther
  • Created28 Aug 13
  • Primary languageSwift
  • Size60,085 KB
  • Stars874
  • Forks117
  • Watchers874

Language Usage

Language Usage

Project Health

  • Last commit24 days ago
  • Open issues66
  • Latest releasebuild/2529

Recent Commits

  • Matt Rubin(10 Apr 26)

    Merge pull request #475 from mattrubin/maintenance Bump iOS deployment target to 16.0

  • Matt Rubin(10 Apr 26)

    [ci] Temporarily disable Codecov uploading

  • Matt Rubin(10 Apr 26)

    [ci] Migrate from `xcversion` to `xcodes`

  • Matt Rubin(10 Apr 26)

    [ci] Disable failing script for printing bundled runtimes > Bundled runtimes: > Xcode_16.0.0.app > 2026-04-10 17:19:55.567 defaults[4268:16280] > The domain/default pair of (/Applications/Xcode_16.0.0.app/Contents/Developer/Platforms/*.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/*.simruntime/Contents/Info.plist, CFBundleName) does not exist > Error: Process completed with exit code 1.

  • Matt Rubin(10 Apr 26)

    [ci] Allow other test jobs to complete even if one fails

  • Matt Rubin(10 Apr 26)

    [ci] Modernize GitHub Actions testing workflow - Run jobs on MacOS 15 - Update test matrix to use modern Xcode and iOS versions - Use latest versions of GitHub Actions dependencies

  • Matt Rubin(10 Apr 26)

    Migrate off of deprecated `UTType` constant "'kUTTypeUTF8PlainText' was deprecated in iOS 15.0: Use UTTypeUTF8PlainText or UTType.utf8PlainText (swift) instead."

  • Matt Rubin(10 Apr 26)

    Bump iOS deployment target to 16.0

  • Matt Rubin(10 Apr 26)

    Upgrade fastlane tools

  • Matt Rubin(07 Jan 26)

    Merge pull request #466 from mattrubin/2026 Modernize tooling and project configuration

  • Matt Rubin(06 Jan 26)

    Revert versioning scheme change

  • Matt Rubin(06 Jan 26)

    Update Swiftlint config to be opt-out rather than opt-in

  • Matt Rubin(06 Jan 26)

    Delete unused imports flagged by `swiftlint analyze`

  • Matt Rubin(06 Jan 26)

    Prefer `XCTAssertEqual` and `XCTAssertNotEqual` over `XCTAssert` When tests fail, the more specific matchers provide better error messages.

  • Matt Rubin(06 Jan 26)

    Update screenshots for new screen sizes: - Update fastlane snapshot config with new devices - Remove SimulatorStatusMagic, which doesn't work as easily on newer simulators - Configure fastlane snapshot to make the status bar pretty - Annotate screenshot test case with `@MainActor` as required by the snapshot helper function A few issues I ran into: - The iOS simulator inherits the 12/24-hour time format preference from the macOS host *at the time the simulator is created* and does not expose a way to change this setting via either the Settings app or an `xcrun simctl` command. The fix was to manually run `plutil -remove AppleICUForce24HourTime ~/Library/Developer/CoreSimulator/Devices/[Simulator UUID]/data/Library/Preferences/.GlobalPreferences.plist` for each simulator before running fastlane snapshot. - There are imperceptible differences between screenshots rendered when my MBP is running on battery power vs running off a power adapter. I opted to capture screenshots when connected to power. - The (in)visibility of the home indicator at the bottom of each screenshot is flaky. Most screenshots don't include it, but I had to re-generate several of them to get them all without home indicators.

  • Matt Rubin(03 Jan 26)

    Upgrade project format to Xcode 16.3+

  • Matt Rubin(03 Jan 26)

    Use non-optional `Data(_:)` initializer to convert `String` to `Data`

  • Matt Rubin(03 Jan 26)

    Temporarily disable `xct_specific_matcher` SwiftLint rule

  • Matt Rubin(03 Jan 26)

    Fix SwiftLint build script configuration

  • Matt Rubin(03 Jan 26)

    Disable Liquid Glass with `UIDesignRequiresCompatibility`

  • Matt Rubin(03 Jan 26)

    Update to recommended Xcode project settings

  • Matt Rubin(03 Jan 26)

    Update fastlane snapshot helper

  • Matt Rubin(03 Jan 26)

    Upgrade Carthage dependencies

  • Matt Rubin(03 Jan 26)

    Pin Ruby version and upgrade fastlane

  • Matt Rubin(12 Feb 23)

    Merge pull request #407 from mattrubin/modernize Update project for modern Xcode, Swift, and iOS

  • Matt Rubin(12 Feb 23)

    Update copyright notice dates

  • Matt Rubin(12 Feb 23)

    Remove direct initialization of empty NSErrors in tests

  • Matt Rubin(12 Feb 23)

    Fix `UITableViewAlertForLayoutOutsideViewHierarchy` warnings in tests

  • Matt Rubin(12 Feb 23)

    Fix a comment typo

  • Matt Rubin(12 Feb 23)

    [CI] Fix collection of code coverage info

Authenticator Website

Website

Authenticator • Two-Factor Authentication Client for iOS

Redirects

Redirects to https://mattrubin.me/authenticator/

Security Checks

All 65 security checks passed

Server Details

  • IP Address172.66.47.43
  • LocationSan Francisco,California,United States of America,NA
  • ISPCloudFlare Inc.
  • ASNAS13335

Associated Countries

  • USUS

Safety Score

Website marked as safe

100%

Blacklist Check

mattrubin.me was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Authenticator iOS App

App Info

Authenticator

Authenticator is a simple, free, and open source two-factor authentication app. It helps keep your online accounts secure by generating unique one-time passwords, which you use in combination with your other passwords to log into supporting websites. The simple combination of the password in your head and the rotating passwords generated by the app make it much harder for anyone but you to access your accounts. • Easy: Simple setup via QR code, "otpauth://" URL, or manual entry • Secure: All data is stored in encrypted form on the iOS keychain • Compatible: Full support for time-based and counter-based one-time passwords as standardized in RFC 4226 and 6238 • Off the Grid: The app never connects to the internet, and your secret keys never leave your device.

Rating

Rated 3.68 out of 5 stars by 420 users

Version Info

  • Current Version2.1.2
  • Last Updated01 Jun 19
  • First Released03 Dec 13
  • Minimum iOS Version9.0
  • Device Models Supported162

App Details

  • IPA Size16.13 Mb
  • PriceFree (USD)
  • Age Advisory4+
  • Supported Languages1
  • DeveloperMatt Rubin
  • Bundle IDme.mattrubin.authenticator

Screenshots

  • App screenshot
  • App screenshot
  • App screenshot

Authenticator Reviews

More 2-Factor Authentication

About the Data: Authenticator

Change History

  • Amended (iosApp)

Edit Authenticator Data

You can edit Authenticator's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

Origin Data

Modify Data

API

You can access Authenticator's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/authenticator

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Authenticator

Help your friends compare 2-Factor Authentication, and pick privacy-respecting software and services.
Share Authenticator and Awesome Privacy with your network!