1. Go to this page and download the library: Download abmmhasan/otp library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
abmmhasan / otp example snippets
$secret = \Infocyph\OTP\HOTP::generateSecret();
// supports digit count in 2nd parameter, recommended to be either 6 or 8 (default 6)
(new \Infocyph\OTP\HOTP($secret))
// only
// or `getProvisioningUri` just to get the URI
->getProvisioningUriQR('TestName', '[email protected]');
$counter = 346;
$otp = (new \Infocyph\OTP\HOTP($secret))->getOTP($counter);
(new \Infocyph\OTP\HOTP($secret))->verify($otp,$counter);
$secret = \Infocyph\OTP\TOTP::generateSecret();
// supports digit count in 2nd parameter, recommended to be either 6 or 8 (default 6)
(new \Infocyph\OTP\TOTP($secret))
// default is sha1; Caution: many app (in fact, most of them) have algorithm limitation
->setAlgorithm('sha256')
// or `getProvisioningUri` just to get the URI
->getProvisioningUriQR('TestName', '[email protected]');
$counter = 346;
$otp = (new \Infocyph\OTP\TOTP($secret))->getOTP($counter);
// or get OTP for another specified epoch time
$otp = (new \Infocyph\OTP\TOTP($secret))->getOTP(1604820275);
(new \Infocyph\OTP\TOTP($secret))->verify($otp);
// or verify for a specified time
(new \Infocyph\OTP\TOTP($secret))->verify($otp, 1604820275);
/**
* Param 1 is OTP length (default 6)
* Param 2 is validity in seconds (default 30)
* Param 3 is retry count on failure (default 3)
*/
$otpInstance = new \Infocyph\OTP\OTP(4, 60, 2);
$otp = $otpInstance->generate('an unique signature for a cause');
$otpInstance->verify('an unique signature for a cause', $otp);
$otpInstance->delete('an unique signature for a cause');
$otpInstance->flush()
// Example usage:
$sharedKey = 'mySecretKey'; // Replace with your actual shared key (binary format)
$challenge = '123456'; // Replace with your challenge value
$counter = 0; // Replace with the appropriate counter value
// Create an OCRA instance
$suite = new \Infocyph\OTP\OCRA('OCRA-1:HOTP-SHA1-6:C-QN08', $sharedKey);
// If the OCRA suite supports session, set the session
$suite->setSession('...');
// If the OCRA suite supports time format, set the time
$suite->setTime(new \DateTime());
// If the OCRA suite supports pin, set the pin
$suite->setPin('...');
// Generate the OCRA value
$suite->generate($challenge, $counter);
OCRA-1:HOTP-SHA1-6:C-QN08-PSHA1
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.