Comparison of OTP applications
Jump to navigation
Jump to search
The following is a general comparison of OTP applications that are used to generate one-time passwords for two-factor authentication (2FA) systems using the time-based one-time password (TOTP), the HMAC-based one-time password (HOTP) algorithms or Mobile-OTP (mOTP),[1] which is an older, open source, 2FA system for mobile phones that combines a user’s PIN, time and a per-device secret to generate OTPs. It also lists apps that support proprietary authentication methods, like those used by Steam or Yandex.
Summary information
[edit | edit source]Standalone authenticator applications
[edit | edit source]The following is an overview of authenticator applications that operate independently and are not integrated into password managers.
| Name | License | Operating system support | Browser integration | Delivery format |
|---|---|---|---|---|
| 2FAS[2] | Open source | Android, iOS, iPadOS, watchOS | Yes, autofill via browser extension connected to mobile app | Local installation with sync via iCloud or Google Drive |
| 2FAuth[3] | Open source | Cross-platform web application | No | Local installation |
| 2fast[4] | Open source | Windows | Unknown | Local installation |
| Aegis Authenticator[5] | Open source | Android | Unknown | Local installation with cloud sync |
| andOTP[6] (unmaintained)[7] | Open source | Android, iOS, Linux, macOS, Windows | Unknown | Local installation with cloud sync |
| Authenticator App by 2Stable[8] | Proprietary / Freemium | iOS, iPadOS, macOS, watchOS, browser extension for Chrome, Edge, Firefox and more | Unknown | Local installation |
| Authy | Proprietary / Freeware | Android, iOS, iPadOS, watchOS. Dropped support for Linux, Mac and Windows | Unknown | Local installation |
| Bitwarden Authenticator | Open source | Android, iOS, iPadOS, visionOS | Unknown | Local installation with backup via iCloud or Google Drive |
| Authenticator[9] | GPL-3.0-or-later | Linux | Unknown | Local installation |
| Duo Mobile[10] | Proprietary / Freeware | Android, iOS, iPadOS, watchOS | Unknown | Local installation |
| Ente Auth | AGPL-3.0 | Android, iOS, iPadOS, Linux, macOS, Windows | Unknown | Local installation with cloud sync |
| Epic Authenticator[11] | Proprietary freeware | Android, iOS, iPadOS, watchOS | Unknown | Local installation |
| FreeOTP[12] | Open source | Android, iOS, iPadOS | Unknown | Local installation |
| GAuth Authenticator[13] | GPL | Web based app | No | Local installation or hosted web application |
| Google Authenticator | Proprietary freeware | Android, iOS, iPadOS, Blackberry, Wear OS | Unknown | Local installation with cloud sync |
| Hotpants[14] | GPL-2.0 | J2ME | Unknown | Local installation |
| IBM Verify | Proprietary freeware | Android, iOS, iPadOS | Unknown | Local installation |
| LastPass Authenticator[15] | Proprietary | Android, iOS, iPadOS, watchOS | Yes, autofill via browser extension connected to mobile app | Local installation with cloud sync |
| Microsoft Authenticator | Proprietary | Android, iOS, iPadOS, visionOS | No | Local installation with cloud sync |
oathtool[16]
|
Open source | Linux | No | Local installation |
| Open Authenticator[17] | Open source | Android, iOS, iPadOS, Linux, macOS, Windows | Unknown | Local installation |
| Proton Authenticator[18] | GPL-3.0-or-later | Android, iOS, macOS, Windows, Linux | Unknown | Local installation with cloud sync |
| SAASPASS Authenticator [19] | Proprietary | Android, iOS, iPadOS, watchOS, macOS | No | Local installation with cloud sync |
| Stratum[20] | GPL-3.0 | Android, Wear OS | Unknown | Local installation with cloud sync |
| Symantec VIP | Proprietary | Android, iOS, watchOS, macOS, Windows | Unknown | Local installation |
| Tessera[21] | Open source | Symbian S60 5th Edition, initial support for desktop | Unknown | Local installation |
| TOTP ME[22] | Open source | J2ME | Unknown | Local installation |
| TOTP.CX[23] | Open source | Cross-platform web application | Unknown | Web-based |
| TOTP.APP[24] | Open source | Cross-platform web application | Unknown | Web-based |
| Yandex Key[25] | Proprietary | Android, iOS, iPadOS | Unknown | Local installation |
| Yubico Authenticator for Desktop[26] | Proprietary | Linux, macOS, Windows | Unknown | Local installation |
| Yubico Authenticator for Mobile | Proprietary | Android, iOS | Unknown | Local installation |
Combined authenticator and password manager applications
[edit | edit source]The following is an overview of password managers that include an integrated authenticator feature.
Authenticated implementations
[edit | edit source]| Implementation | Description | Online sync. | Operating system / Platform | Default | Non-default | Import methods | Export methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | Mac | Linux | iOS | Android | Other | HOTP | Value length, d | Hash, H | Interval, TX | Epoch, T0 | Other: Steam or mOTP | QR | JSON | QR | JSON | |||
| 1Password | Cross-platform password manager[31] | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | No | Unknown | Unknown | Unknown | Unknown | ||||
| 2FAS[2] | Popular, feature rich open-source two-factor authenticator. No account required. | Online backup/sync via iCloud or Google Drive | Through browser extension connected to mobile app | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes | ||
| 2FAuth[3] | An open-source PHP web based self-hosted OTP generator, designed for both mobile and desktop. | Yes, web based | No | Unknown | Yes | Yes | Yes | No | Steam | |||||||||
| 2fast[4] | Open-source two-factor authenticator. No account required. Available in Windows App Store. | No | Yes | No | No | No | No | No | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | ||||
| Aegis Authenticator | Free and open source app for Android to manage your 2-step verification tokens.[5] | Automatic backup to a location of your choosing | No | No | No | No | Yes | No | Unknown | Yes | Yes | Yes | No | Steam | Yes | Yes | Yes | Yes |
| andOTP[6] (unmaintained - json file handled by Aegis)[7] | Open-source app for Android 4.4+. Compatible with Google Authenticator. | No | No | No | No | No | Yes | No | Unknown | No | No | Yes | No | No | Yes | Yes | ||
| Apple Keychain | Native password manager on Apple devices. Not on tvOS.[32] | Yes [33] | Yes [34] | Yes | No | Yes | No | Apple Vision Pro | Unknown | Yes | Yes | Yes | Unknown | Unknown | Yes | The Setup URL (otpauth://) can be manually copied for each item from the edit screen of the Passwords app | ||
| Authenticator[9] | GNOME circle application. Free and Open Source, community-provided, but not shipped as part of GNOME's Core apps | No | No | No | Yes | No | No | Any desktop or mobile platform where GNOME can run | Yes | Yes | Yes | Yes | Yes | Steam | Yes | Yes | Yes | Yes |
| Authenticator App by 2Stable[8] | Secure two-factor authentication app for iPhone, iPad, iPod, Apple Watch and Mac. Freemium app with max 2 accounts in the free version.[35] | Yes | No | Yes | No | Yes | No | No | Unknown | Yes | Yes | Yes | Unknown | No | ||||
| Authy | By Twilio, from 2015, originally Authy.[36] Previously available for Chrome.[37] | Yes | Discontinued March 19, 2024[38] | Yes | Yes | No | Unknown | Yes | No | No | No | No | ||||||
| Bitwarden | Open Source Cross platform password manager. 2FA is a premium feature.[39] | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Yes | Yes | Yes | Unknown | Steam[40] | Yes | Yes | No | Yes |
| Bitwarden Authenticator | Free and open source app for Android and iOS to manage your 2-step verification tokens.[41] | No | No | No | No | Yes | Yes | No | Unknown | No | No | No | No | No | ||||
| Duo Mobile[10] | Free 2FA authenticator provided by Cisco | Yes, through iCloud or Google Drive | No | No | No | Yes | Yes | No | Unknown | Unknown | Unknown | Unknown | Unknown | No | ||||
| Enpass[42] | Password manager by Sinew Software Systems. Syncs over multiple back-ends. | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Yes | No | Yes | Unknown | No | Yes | |||
| Ente Auth | Free, open source, cross-platform authenticatior with encrypted cloud sync.[43] | Yes | Yes | Yes | Yes | Yes | Yes | Web | Unknown | Unknown | Unknown | Unknown | Unknown | Steam [44] | ||||
| FreeOTP[12] | Maintained by RedHat, and based on Google Authenticator. | No | No | No | No | Yes | Yes | No | Unknown | Yes | Yes | Yes | No | No | ||||
| GAuth Authenticator[13] | A simple application for multi-factor authentication, written in HTML using jQuery Mobile (and PhoneGap), jsSHA and LocalStorage. | Unknown | Yes | Yes | Yes | No | No | No | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | ||||
| Google Authenticator | Yes | No | No | No | Yes | Yes | No | Yes | No | No | No | No | No | Yes | No | Yes | No | |
| Hotpants[14] | Free, open-source J2ME MIDlet app to manage your TOTPs and HOTPs. | Import via scanning QR code on screen | No | No | No | No | No | J2ME | Yes | Unknown | Unknown | Unknown | Unknown | No | ||||
| IBM Security Verify | Unknown | No | No | No | Yes | Yes | No | Unknown | Unknown | Unknown | Yes | Unknown | Unknown | |||||
| Invantive Authenticator[45] | Focuses on integration with Invantive Keychain. | No | Yes | No | No | No | No | No | Unknown | Yes | Yes | Yes | Yes | No | ||||
| KeePassXC[46] | Password manager | Through user setup with Syncthing,[47][better source needed] or only within the KeeWeb[48] online web App[49] | Yes | Yes | Yes | No | KeePassDX[50] | No | Unknown | Yes | Yes | Yes | No | Steam | Yes | |||
| LastPass Authenticator[15] | Cross-platform OTP for mobile devices with support for online backup. | Yes | No | No | No | Yes | Yes | No | Unknown | Yes | Yes | Yes | No | No | Yes | |||
| Microsoft Authenticator | Yes | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | |
oathtool[16]
|
Command-line tool for generating OTP tokens. | No | No | No | Yes | No | No | FreeBSD,[51] NetBSD,[52] OpenBSD[53] | Unknown | Yes | Yes | Yes | Yes | Unknown | ||||
| Open Authenticator[17] | Free, open-source and multiplatform app to manage your TOTPs. | Yes, requires a subscription for more than 6 TOTPs | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | No | No | ||||
| privacyIDEA Authenticator[54] | For use with privacyIDEA Authentication Server, with a secure enrollment process. | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | No | Unknown | ||||
| Proton Authenticator[18] | Open source and available on every device. Securely sync and backup 2FA codes easily. No account required. | Yes, via a Proton Account, or via iCloud on Apple devices | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | Steam | No | Yes | No | Yes |
| SAASPASS Authenticator [19] | Cross-platform 2FA Authenticator with TOTP & HOTP generator with sharing capabilities and password manager integration. Multiple device support, Mobile app and web access with multiple backup capabilities. | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Steam | ||||
| Stratum[20] | Free and open-source two-factor authentication app for Android | Unknown | No | No | No | No | Yes | WearOS | Yes | Unknown | Unknown | Unknown | Unknown | Steam & mOTP | ||||
| Symantec VIP | Unknown | No | No | No | Yes | Yes | No | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | |||||
| Tessera[21] | Free, open-source Qt for Symbian and desktop app to manage your TOTPs. | Unknown | Initial support for desktop | No | Could be ported | Symbian S60 5th Edition | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | ||||||
| TOTP ME[22] | Free, open-source J2ME MIDlet app to manage your TOTPs. | Manually | Using MicroEmulator app[55] | Unknown | Using J2ME Loader app[56] | J2ME or any with J2ME support or emulator | Unknown | Yes | Yes | Yes | Time correction in seconds | No | ||||||
| TOTP.CX[23] | Web-based authenticator not requiring registration. | Import via scanning QR code on screen | Yes | Yes | Yes | Yes | Yes | Web | No | No | No | No | No | No | Yes | Yes | Yes | Yes |
| TOTP.APP[24] | Web-based authenticator not requiring registration. | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | ||||
| Yandex Key[25] | Simple app for phones from Russian company | Yes, manually, for 1 year | No | No | No | Yes | Yes | No | No | Unknown | Unknown | Unknown | Unknown | Unknown | ||||
| Yubico Authenticator for Desktop[26] | By Yubico, for use with Yubikeys. | No | Yes | Yes | Yes | — | — | No | No | Yes | Yes | Yes | No | No | ||||
| Yubico Authenticator for Mobile | — | — | — | Yes | Yes | |||||||||||||
See also
[edit | edit source]References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).