nacosvel/2fa
Composer 安装命令:
composer require nacosvel/2fa
包简介
Community-driven PHP library for generating OTPs (HOTP/TOTP), RFC-compliant and compatible with Google Authenticator.
README 文档
README
Nacosvel Authenticator
This community-driven PHP extension package provides secure one-time password (OTP) generation, implementing both HOTP (RFC 4226) and TOTP (RFC 6238) algorithms. Designed for reliability and interoperability, it ensures seamless compatibility with Google Authenticator and other industry-standard OTP solutions, making it ideal for implementing two-factor authentication (2FA) in PHP applications.
Table of Contents
Installation
You can install the package via Composer:
composer require nacosvel/2fa
Usage
Generate Secret
use Nacosvel\Authenticator\Authentication; $secret = Authentication::generateSecret(20, false); // string(32) "RIPPSUOU3EQBR3FXML2QL43SRYGWCKY3"
Generate Token
use Nacosvel\Authenticator\HOTP; use Nacosvel\Authenticator\TOTP; $hotpToken = HOTP::generateToken($secret, 30, 6, 'sha1'); $totpToken = TOTP::generateToken($secret, 30, 6, 'sha1'); // string(6) "577349" // string(6) "981726"
Validate Token
use Nacosvel\Authenticator\HOTP; use Nacosvel\Authenticator\TOTP; $hotpValidate = HOTP::validate($secret, $hotpToken, 30, 6, 'sha1', 3); $totpValidate = TOTP::validate($secret, $totpToken, 30, 6, 'sha1', 3); // bool(true) // bool(true)
Generate URI
use Nacosvel\Authenticator\HOTP; use Nacosvel\Authenticator\TOTP; $hotpURI = HOTP::buildURI($secret, 'Mr.Alex', 'Github', 30, 6, 'sha1')->toString(); $totpURI = TOTP::buildURI($secret, 'Mr.Alex', 'Github', 30, 6, 'sha1')->toString(); // string(118) "otpauth://hotp/Github:Mr.Alex?secret=LWN4DKX2KHW4X7VMSWNIRJVHW4F4SQ4Z&counter=30&digits=6&algorithm=sha1&issuer=Github" // string(117) "otpauth://totp/Github:Mr.Alex?secret=RIPPSUOU3EQBR3FXML2QL43SRYGWCKY3&period=30&digits=6&algorithm=sha1&issuer=Github"
URI::fromString
use Nacosvel\Authenticator\URI; $uri = URI::fromString('otpauth://totp/Github:Mr.Alex?secret=RIPPSUOU3EQBR3FXML2QL43SRYGWCKY3&period=30&digits=6&algorithm=sha1&issuer=Github'); var_dump([ 'type' => $uri->getType(), // totp 'issuer' => $uri->getIssuer(), // Github 'account' => $uri->getAccount(), // Mr.Alex 'secret' => $uri->getSecret(), // RIPPSUOU3EQBR3FXML2QL43SRYGWCKY3 'digits' => $uri->getDigits(), // 6 'algorithm' => $uri->getAlgorithm(),// sha1 ]);
URI::buildURI
use Nacosvel\Authenticator\URI; use Nacosvel\Authenticator\HOTP; use Nacosvel\Authenticator\TOTP; $hotpURI = URI::buildURI(HOTP::class, 'Mr.Alex', 'Github')->secret($secret)->toString(); $totpURI = URI::buildURI(TOTP::class, 'Mr.Alex', 'Github')->secret($secret)->toString(); // string(83) "otpauth://hotp/Github:Mr.Alex?secret=LWN4DKX2KHW4X7VMSWNIRJVHW4F4SQ4Z&issuer=Github" // string(83) "otpauth://totp/Github:Mr.Alex?secret=RIPPSUOU3EQBR3FXML2QL43SRYGWCKY3&issuer=Github"
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Contributors
Thanks goes to these wonderful people:
Contributions of any kind are welcome!
License
Distributed under the MIT License (MIT). Please see License File for more information.
nacosvel/2fa 适用场景与选型建议
nacosvel/2fa 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.86k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 08 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「google authenticator」 「hotp」 「totp」 「2fa」 「RFC 6238」 「RFC 4226」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nacosvel/2fa 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nacosvel/2fa 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nacosvel/2fa 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Security tools for PHP
Simple HOTP/TOTP generation library
A Google Authenticator Bundle for Symfony
Basic CAS (SSO) authenticator for Symfony 5.4, 6.0, 7.0 and 8.0
Time-based One-time Password implementation for Nette framework
YII2 extension for generating one time passwords according to RFC 4226/6238 (HOTP/TOTP Algorithm) and authentication widget
统计信息
- 总下载量: 7.86k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 30
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-20