nora-lib / secure
dev-master
2025-01-02 23:27 UTC
Requires
- php: ^8.3.0
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.8
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2025-05-23 23:23:59 UTC
README
インストール
このライブラリはComposerを通じてインストールできます。 以下のコマンドを実行してください。
composer require noralib/secure-time-based-token
特徴
- RFC 6238 に準拠したTOTPの生成と検証
- 時間ウィンドウのカスタマイズ設定
- 任意の桁数やタイムステップ設定のカスタマイズ
- 簡潔なインターフェース
- PHPUnitによる包括的なテストスイートを提供
要件
- PHP 8.3 以上
- Composer(依存関係を管理するため)
使い方
このライブラリでは、TOTPの生成と検証を簡単に行うことができます。
TOTP生成例
use NoraLib\Secure\TimeBasedToken\TimeBasedToken;
$secret = 'JBSWY3DPEHPK3PXP'; // Base32 形式の秘密鍵
$timeBasedToken = new TimeBasedToken();
$generatedOtp = $timeBasedToken->generateTotp($secret);
echo "Generated OTP: " . $generatedOtp;
TOTP検証例
use NoraLib\Secure\TimeBasedToken\TimeBasedToken;
$secret = 'JBSWY3DPEHPK3PXP'; // Base32 形式の秘密鍵
$providedOtp = '123456'; // ユーザが提供したOTP
$timeBasedToken = new TimeBasedToken();
$isValid = $timeBasedToken->verifyTotp($secret, $providedOtp);
if ($isValid) {
echo "OTP is valid!";
} else {
echo "Invalid OTP!";
}
カスタム設定の例
use NoraLib\Secure\TimeBasedToken\TimeBasedToken;
$secret = 'JBSWY3DPEHPK3PXP'; // Base32 形式の秘密鍵
$timeBasedToken = new TimeBasedToken();
// 8桁のOTP、90秒間隔の設定でトークンを生成
$customOtp = $timeBasedToken->generateTotp($secret, time(), 8, 90);
// 検証(8桁、90秒間隔)
$isValid = $timeBasedToken->verifyTotp($secret, $customOtp, 8, 90);
テスト
ライブラリの品質を確認したい場合は、以下のコマンドでテストを実行できます。
- 依存関係をインストールします。
composer install
- PHPUnitテストを実行します。
vendor/bin/phpunit
または、PHPUnitをグローバルインストールしている場合:
phpunit tests
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
貢献
バグ報告や新機能の提案は GitHub Issues に投稿してください。
- このリポジトリをフォークする
- 新しいブランチを作成する (
git checkout -b feature/your-feature
) - コードを実装する
- プルリクエストを送信する
注意事項
このライブラリは、ログインや認証機能におけるセキュリティコンポーネントとして設計されていますが、適切に安全性を確認した上で利用してください。