🔢

OTP 代碼產生器與驗證器

OTP 代碼產生器與驗證器

配置
OTP 類型:
TOTP(基於時間)
演算法:
SHA1
位數:
時間週期(秒) (TOTP):
密鑰:
生成
驗證
輸入代碼:

什麼是 OTP

一次性密碼(OTP)是自動產生的臨時密碼,僅對單次登入工作階段或交易有效。與靜態密碼不同,OTP 無法重複使用,提供針對網路釣魚、鍵盤記錄器和重放攻擊的保護。最常見的實作是基於目前時間產生代碼的 TOTP 和使用同步計數器的 HOTP。OTP 使用加密雜湊函數(HMAC)和共用金鑰產生,構成銀行、雲端服務和企業應用程式中兩步驟驗證的基礎。

功能特點

TOTP 支援

產生基於時間的 OTP 代碼,30 秒後自動過期,為您的帳戶提供安全的雙因素驗證
🔢

HOTP 支援

建立基於計數器的 OTP 代碼,每次使用後遞增,非常適合離線驗證和硬體令牌實現
🔒

多種演算法

支援 SHA-1、SHA-256 和 SHA-512 演算法,可配置代碼長度(6-8 位),滿足靈活的安全需求

代碼驗證

透過將產生的代碼與使用者輸入進行比較,即時驗證 OTP 代碼,支援時間視窗容錯和計數器同步

📋使用指南

1️⃣
配置參數
選擇 OTP 類型(TOTP/HOTP)、演算法(SHA-1/SHA-256/SHA-512)、代碼長度(6-8 位)並輸入金鑰。
2️⃣
產生代碼
點擊「產生代碼」建立 OTP。TOTP 代碼每 30 秒自動刷新;HOTP 需手動遞增計數器。
3️⃣
驗證代碼
輸入金鑰和要驗證的代碼,點擊「驗證代碼」檢查是否與預期值匹配。

📚技術介紹

🔐什麼是 OTP 代碼

一次性密碼(OTP)代碼是提供系統和服務安全訪問的臨時驗證令牌。它們使用加密演算法和共享金鑰產生,確保每個代碼都是唯一且有時間限制的。OTP 代碼廣泛用於雙因素驗證(2FA)、多因素驗證(MFA)和安全登入系統。兩種主要類型是 TOTP(基於時間的 OTP)和 HOTP(基於 HMAC 的 OTP),每種都有特定的使用案例和安全特性。

TOTP(基於時間的 OTP)實現

TOTP 基於目前時間戳和共享金鑰產生代碼。演算法使用 HMAC-SHA1、HMAC-SHA256 或 HMAC-SHA512 對目前時間視窗(通常為 30 秒)與金鑰的組合建立雜湊。產生的雜湊被截斷並轉換為數字代碼。TOTP 代碼與伺服器時鐘同步,並在時間視窗後自動過期,提供強大的重放攻擊防護,確保代碼僅在短時間內有效。

🔢HOTP(基於 HMAC 的 OTP)實現

HOTP 使用遞增計數器和共享金鑰產生代碼。演算法將 HMAC-SHA1 應用於計數器值和金鑰,然後截斷結果以建立數字代碼。每次使用 HOTP 代碼時,計數器都會遞增,確保下一個代碼不同。HOTP 適用於時間同步可能困難的離線場景,但需要仔細管理計數器以防止客戶端和伺服器之間的不同步。

🛡️安全性和驗證

OTP 安全性依賴於共享金鑰的保密性和 HMAC 演算法的加密強度。金鑰必須使用加密安全的隨機數產生器產生並安全儲存。驗證涉及使用相同的演算法和參數重新計算預期的 OTP 代碼,然後將其與提供的代碼進行比較。進階驗證包括 TOTP 的時間視窗容錯、HOTP 的計數器同步,以及透過速率限制和帳戶鎖定機制防止暴力攻擊。

常见问题

TOTP 和 HOTP 有什么区别?

TOTP(基于时间的 OTP)使用当前时间生成代码,通常每 30 秒自动更改。HOTP(基于计数器的 OTP)使用计数器,每次生成代码时必须手动递增。TOTP 用于大多数 2FA 应用,而 HOTP 更適合硬件令牌或离线场景。
💬

我从哪里获取密钥?

密钥通常在启用 2FA 时由服务提供。可能显示为 QR 码或 Base32 编码的字符串。用于开发和测试目的,您可以生成随机 Base32 字符串,但在生产环境中,应使用服务提供的密钥。
🔍

我应该选择哪种算法?

SHA-1 是支援最广泛的算法,与大多数 2FA 系统兼容。SHA-256 和 SHA-512 提供更强的安全性,但某些旧系统可能不支援。除非有特定要求,建议从 SHA-1 开始。
💡

为什么生成的代码与 Google Authenticator 不匹配?

最常见的原因是时钟同步问题。TOTP 依赖于准确的时间,因此设备和服务器时钟必须同步。还要确保密钥、算法(SHA-1)、位数(6)和周期(30秒)完全匹配。
📚

这个工具在生产环境中安全吗?

此工具用于教育和测试目的。在生产环境中,使用经过验证的 OTP 库(如 speakeasy、otplib)并安全存储密钥(环境变量、密钥管理系统)。切勿在浏览器控制台或日志中暴露密钥。

💡使用方法

1️⃣

测试 2FA 系统

在应用程序中实现 2FA 时,使用此工具测试 OTP 生成和验证逻辑。輸入密钥,生成代码,然后使用验证功能进行确认。
2️⃣

验证与认证应用的同步

确认服务器端 OTP 实现与 Google Authenticator、Authy 或其他 2FA 应用匹配。使用相同的密钥生成代码并比较两个输出。
3️⃣

测试时间窗口

测试 TOTP 时间窗口容差。在不同时间段生成和验证代码,以确保实现正确處理时钟漂移。
4️⃣

比较算法

使用不同算法(SHA-1、SHA-256、SHA-512)生成代码以了解它们的差异。验证每个算法使用相同密钥生成不同的代码。
5️⃣

HOTP 计数器管理

对于 HOTP 实现,测试计数器同步。在递增计数器的同时生成多个代码,并验证序列按预期工作。

User Comments

0 / 2000
Loading...