OTP 驗證碼產生/校驗
產生和校驗 TOTP/HOTP 一次性驗證碼,用於雙因素認證。支援 SHA-1/256/512、Base32/Hex 密鑰、QR Code 匯出,100%瀏覽器端執行,無需註冊。
什麼是一次性驗證碼(OTP)?
OTP 是僅在一次登入工作階段或交易中有效的密碼。由於它會頻繁變化,即使被竊取也會很快失效,因此比靜態密碼更安全。
TOTP 和 HOTP 有什麼區別?
TOTP(基於時間的一次性密碼,RFC 6238)根據當前時間產生驗證碼,預設每 30 秒變化一次。HOTP(基於 HMAC 的一次性密碼,RFC 4226)使用遞增計數器,每次產生時計數器加一。TOTP 在現代雙因素認證中更常見。
這個 OTP 產生器安全嗎?
安全。所有產生和校驗都在瀏覽器本機透過 Web Crypto API 完成,您的密鑰不會離開裝置,也不會傳送到任何伺服器。
什麼是 Base32 密鑰?
Base32 是一種用 32 個字元(A-Z 和 2-7)表示二進位資料的編碼方案,是 Google Authenticator 等驗證器使用的 OTP 密鑰標準格式,例如 "JBSWY3DPEHPK3PXP"。
應該選擇哪種雜湊演算法?
SHA-1 是預設演算法,與包括 Google Authenticator 在內的大多數驗證器相容。SHA-256 和 SHA-512 更安全,但並非所有應用都支援。為獲得最佳相容性請使用 SHA-1。
如何將產生的驗證碼新增到 Google Authenticator?
輸入密鑰後,用 Google Authenticator(或其他相容 2FA 應用)掃描顯示的 otpauth QR Code。也可以手動輸入 otpauth URI 或密鑰。
otpauth:// URI 格式是什麼?
otpauth://totp/<標籤>?secret=<密鑰>&issuer=<發行方>&algorithm=<演算法>&digits=<位數>&period=<週期>。該 URI 編碼了所有 OTP 參數,可渲染為 QR Code 方便匯入驗證器。
為什麼驗證碼每 30 秒變化一次?
RFC 6238 規定 TOTP 預設時間步長(週期)為 30 秒,在安全性(有效期短)和可用性(有足夠時間輸入)之間取得平衡。如有需要可自訂週期。
可以校驗收到的驗證碼嗎?
可以,切換到校驗模式,輸入密鑰和收到的驗證碼。工具會比對當前及前後時間視窗的值,以容忍微小的時鐘偏差。
6 位和 8 位驗證碼有什麼區別?
指產生的 OTP 驗證碼長度。6 位是大多數 2FA 系統的標準長度。8 位提供更多組合可能,但支援的應用較少。
為什麼我的驗證碼和 Google Authenticator 不一致?
請檢查密鑰、演算法(通常 SHA-1)、位數(通常 6 位)和週期(通常 30 秒)是否一致。同時確保裝置時間準確,因為 TOTP 依賴時間同步。
2FA 和 OTP 是一回事嗎?
OTP 是產生一次性驗證碼的機制。2FA(雙因素認證)是一種安全流程,常以 OTP 作為第二因素,將「你所知道的」(密碼)與「你所擁有的」(OTP 裝置)相結合。