PHP Multi Factor Authentication: 2 factor authentication independent of the vendor

Recommend this page to a friend!
  Info   Documentation   View files (20)   Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 111 All time: 9,255 This week: 307
Version License PHP version Categories
multi_factor 1.0MIT/X Consortium ...7Cryptography, Security, PHP 7
Description Author

This package implements 2 factor authentication independent of the vendor.

It can generate one time passwords using either HOTP (Event-based One-Time Password) and TOTP (Time-based One-Time Password).

Currently the package provides one OTP implementation using Google Auth vendor.

Picture of Scott Arciszewski
  Performance   Level  
Name: Scott Arciszewski <contact>
Classes: 25 packages by
Country: United States United States
Age: ???
All time rank: 1374186 in United States United States
Week rank: 17 4 in United States United States
Innovation award
Innovation award
Nominee: 20x

Winner: 1x



Build Status

Designed to be a vendor-agnostic implementation of various Two-Factor Authentication solutions.

Developed by Paragon Initiative Enterprises for use in our own projects. It's released under a dual license: GPL and MIT. As with all dual-licensed projects, feel free to choose the license that fits your needs.



composer require paragonie/multi-factor

Example Usage

use ParagonIE\MultiFactor\OneTime;
use ParagonIE\MultiFactor\OTP\TOTP;

$seed = random_bytes(20);

// You can use TOTP or HOTP
$otp = new OneTime($seed, new TOTP());

if (\password_verify($_POST['password'], $storedHash)) {
    if ($otp->validateCode($_POST['2facode'])) {
        // Login successful    
File Role Description
src (2 files, 2 directories)
test (3 files, 1 directory)
.travis.yml Data Auxiliary data
composer.json Data Auxiliary data
LICENSE Lic. License text
phpunit.xml.dist Data Auxiliary data
psalm.baseline.xml Data Auxiliary data
psalm.xml Data Auxiliary data Doc. Read me

  Files  /  src  
File Role Description
OTP (3 files)
Vendor (1 file)
   MultiFactorInterface.php Class Class source
   OneTime.php Class Class source

  Files  /  src  /  OTP  
File Role Description
   HOTP.php Class Class source
   OTPInterface.php Class Class source
   TOTP.php Class Class source

  Files  /  src  /  Vendor  
File Role Description
   GoogleAuth.php Class Class source

  Files  /  test  
File Role Description
fixtures (4 files)
   GoogleAuthTest.php Class Class source
   HOTPTest.php Class Class source
   TOTPTest.php Class Class source

  Files  /  test  /  fixtures  
File Role Description
   01af3168cf7dbe47c7...6545389a.qrcode.txt Doc. Documentation
   3532ed4f5457b06c9e...d9f22bce.qrcode.txt Doc. Documentation
   68aa8b264cdc6ddc8a...4ca87a06.qrcode.txt Doc. Documentation
   9efd625902fbeedfda...af65cae5.qrcode.txt Doc. Documentation

 Version Control Unique User Downloads Download Rankings  
This week:0
All time:9,255
This week:307

For more information send a message to info at phpclasses dot org.