About PPP 2-Factor Authentication

Adds 2 factor login to PW using the PPP One-Time-Pad System.

Category 1Authentication
Modules dealing with logins, passwords, 2-factor authentication, etc.
Category 2Proof of Concept
Proof of concept modules are designed as examples or starting points for others to build from. May not be ideal for users wanting to plug-n-play.
Release StateBeta
Close to stable, but users are advised to be cautious and test thoroughly.*
Module Version2.0.1
Class NameAuth2FactorPPP
Date AddedOctober 11, 2012
Last UpdatedJuly 9, 2018
Recommended ByNew recommendations may take up to 1 day to appear.


Adds 2-factor authentication to ProcessWire via Steve Gibson's PPP one-time-pad system.

Tokens can be delivered via email on demand or can be printed out in a handy credit-card-sized format.

This module relies on the CryptoPPP library module which you will need to install first.


This module's files should be placed in /site/modules/Auth2FactorPPP/
How to install or uninstall modules


PPP 2-Factor Authentication For ProcessWire

An implementation of Steve Gibson's Perfect Paper Passwords (PPP) system.

PPP is a one-time-pad cryptographic system that allows easy provision of 2-factor authentication for software applications at a very low-cost. Read more about PPP here.

This module requires the CryptoPPP library module to be installed and then uses it to add 2-factor authentication to ProcessWire. Upon installation and activation you will see an additional 'Token' field in the login form. You will have to enter the right one-time-code into this field to be able to login. These tokens can either be printed out in advance and carried on your person, or they can be delivered by email.

Printing PPP One-Time-Pad Cards.

To print out your one-time-pad codes in a handy credit-card sized format...

  1. Go to your profile screen
  2. Expand the "PPP Initialisation Vector" field
  3. Hit the "Show Token Cards" button to open a new browser window with the next 3 useful cards
  4. Use your browser's print option to print these out
  5. Trim them to size and store

Email Delivery

To setup email delivery of the code needed to log in, simply make sure that every user who will use the system has a valid email address. Upon the first failed login, the required token will be emailed to the user's email address and thereafter they will be able to login.


MIT. See the LICENSE file.