wccplatform / otphp
一个根据RFC 4226(HOTP算法)和RFC 6238(TOTP算法)生成一次性密码的PHP库,与Google身份验证器兼容
Requires
- php: ^7.1
- beberlei/assert: ^2.4
- paragonie/constant_time_encoding: ^2.0
Requires (Dev)
- phpunit/phpunit: ^6.0
- satooshi/php-coveralls: ^1.0
- v10.0.x-dev
- dev-master / 10.0.x-dev
- v9.1.0
- v9.0.x-dev
- v9.0.3
- v9.0.2
- v9.0.1
- v9.0.0
- v9.0.0-alpha1
- v8.3.x-dev
- v8.3.2
- v8.3.1
- v8.3.0
- v8.2.0
- v8.1.0
- v8.0.0
- v7.0.4
- v7.0.3
- v7.0.2
- v7.0.1
- v7.0.0
- v6.0.4
- v6.0.3
- v6.0.2
- v6.0.1
- v6.0.0
- v5.0.1
- 5.0.0
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.1.1
- v3.1.0
- v3.0.1-stable
- v3.0.0-stable
- v2.0.2-stable
- v2.0.1-stable
- v2.0.0-stable
- v1.0.1-stable
- v1.0.0-stable
This package is not auto-updated.
Last update: 2024-09-26 05:23:02 UTC
README
请帮助我喝杯啤酒!🍻
一个根据RFC 4226(HOTP算法)和RFC 6238(TOTP算法)生成一次性密码的PHP库
此库与适用于Android和iPhone的Google身份验证器应用程序兼容。例如,它还与FreeOTP等其他应用程序兼容。
发布过程
发布过程在此描述。
先决条件
此库至少需要PHP 7.1
。它已成功使用PHP 7.1
和夜间分支进行测试。
对于旧PHP版本的支持,请使用此库的8.3.x
版本。
安装
安装此库的首选方式是依赖Composer
composer require spomky-labs/otphp
默认情况下,文档和测试环境将被排除。如果您想测试库或获取文档,请添加--prefer-source
选项
composer require spomky-labs/otphp --prefer-source
TOTP或HOTP?
此库支持TOTP
和HOTP
。
TOTP
是一个基于时间的一次性密码。它只存在几秒钟(周期
)。您只需确保服务器和设备的时钟同步即可。这是最常见的OTP。
HOTP
是一个基于计数的一次性密码。每次使用密码时,计数器都会更新。您必须验证服务器和设备是否同步。
如何使用
要创建OTP对象,只需使用静态的create
方法。您的对象将能够生成密码
<?php use OTPHP\TOTP; $otp = TOTP::create(); echo 'The current OTP is: '.$otp->now();
在上面的示例中,我们使用的是TOTP
类,但您也可以以相同的方式使用HOTP
。
然后,您必须配置应用程序。您可以使用配置文件URI($otp->getProvisioningUri();
)作为QR码输入,轻松配置所有应用程序。
我们建议您使用自己的QR码生成器(例如BaconQrCode)。如果您没有自己的生成器,类提供了方便的方式来获取Google Chart API的URI,该API将为您生成它。
$googleChartUri = $totp->getQrCodeUri(); echo "<img src='{$googleChartUri}'>";
现在,您的应用程序已配置,您可以验证生成的OTP
$otp->verify($input); // Returns true if the input is verified, otherwise false.
高级功能
升级
Base 32编码器
请注意,从版本 8.3.2
和 9.0.2
开始,内部Base32编码器已更改。
之前
use Base32\Base32;
$encoded = Base32::encode('foo');
之后
use ParagonIE\ConstantTime\Base32;
$encoded = Base32::encode('foo');
贡献
欢迎提出新功能请求、错误修复以及所有其他使本项目更有用的想法。
请将所有问题报告到仓库的bug追踪器。
同时,请确保遵循以下最佳实践:点击这里。
安全问题
如果您在项目中发现安全漏洞,请勿使用bug追踪器,也勿公开发布。相反,请通过https://gitter.im/Spomky/与我联系。
许可证
本软件发布在MIT许可证下。