Multi-OTP is a PHP class that can be used to authenticate and manage OTP user tokens for strong two-factor authentication. It can create, update, and delete tokens to authenticate users with one time passwords (OTP). The users' data are stored in files. The class can also check the user token using several algorithms: Mobile OTP (MOTP), OATH/HOTP (RFC 4226), and OATH/TOTP HOTP Time Based (RFC 4226 extension). It works with compatible software tokens (iPhone, Android, PalmOS, Nokia, and other Java J2ME capable phones) and hardware tokens (such as Feitian, ZyXEL, Authenex, or Seamoon). The multiotp command line utility is also provided, both in "compiled" form (for Windows) and in source code (for Linux or educational purpose). The multiotp command line can be combined with FreeRADIUS (under Linux) or the free TekRADIUS LT (under Windows) in order to have a powerful radius strong authentication server.
Pure PHP radius class can be used to authenticate users with a RADIUS network access server according to RFC 2865. It connects to a Radius server given its IP address, and requests access on behalf of a user given his password. Once authenticated, the class may return the attributes of the authorized user. This class works with at least the following RADIUS servers: TekRADIUS and TekRADIUS LT (free RADIUS server under Windows); Authenex Strong Authentication System (ASAS) with two-factor authentication; FreeRADIUS; Microsoft Radius server IAS; Radl; RSA SecurID; WinRadius; and ZyXEL ZyWALL OTP (One-Time Password for Two-Factor Authentication, Authenex ASAS branded by ZyXEL).
tokengrid is a PHP class that can be used to generate a grid of tokens to authenticate users. Such a grid is similar to those that banks provide to users to avoid account abuses after phishing attacks. It generates a bidimensional array of tokens of limited length with letters and digits. The generated grid is seeded by a given secret salt string and a specific id that may be used to generate unique grids for different applications and users. The class may also verify whether a token entered by the user corresponds to a token of a random grid position.