이 도구에 대해
TOTP(시간 기반 일회용 비밀번호, RFC 6238)는 Google Authenticator, Microsoft Authenticator, Authy 및 대부분의 "이 QR 코드를 스캔하세요" 방식 2단계 인증 설정에서 표시되는 6자리 코드 뒤에 있는 알고리즘입니다. 공유 시크릿 키를 현재 시간(고정된 창, 보통 30초 단위로 내림)과 결합한 다음 그 결과를 HMAC에 통과시키는 방식으로 작동합니다 — 이는 RFC 4226의 HOTP와 동일한 구조이며, 단지 증가하는 카운터 대신 시간에서 파생된 카운터를 사용한다는 점만 다릅니다. 양쪽(기기와 서버) 모두 시크릿을 알고 시계를 읽을 수 있으므로, 코드를 전송하지 않고도 독립적으로 동일한 코드를 계산할 수 있습니다.
이 도구는 브라우저 네이티브 WebCrypto HMAC 구현을 사용하여 RFC 6238 알고리즘 전체를 클라이언트 측에서 실행합니다. Base32로 인코딩된 시크릿을 붙여넣거나 생성하면 현재 코드를 실시간으로 도출하며, 매초 새로고침되고 30초 창이 끝나는 정확한 시점에 전환됩니다. 이는 TOTP 구현을 검증하거나, 온보딩 흐름을 테스트하거나, 인증 코드가 실제로 어떻게 계산되는지 이해하려는 개발자를 위한 것이며, 실제 계정의 2FA 시크릿을 저장하기 위한 것이 아닙니다.
자주 묻는 질문
이것이 Google Authenticator와 같은 알고리즘인가요?
네 — 이 도구는 SHA-1(기본값)을 사용하는 RFC 6238 TOTP를 구현하며, 이는 Google Authenticator, Authy, Microsoft Authenticator 및 대부분의 2FA 앱이 사용하는 것과 정확히 동일합니다. 같은 시크릿이 주어지면 이 도구와 해당 앱들은 같은 순간에 동일한 코드를 생성합니다.
왜 제 코드가 인증 앱과 더 이상 일치하지 않나요?
가장 흔한 두 가지 원인: 기기의 시계가 어긋났거나(TOTP는 시간 기반이므로 양쪽 모두 정확한 시계가 필요합니다 — 시스템 시간을 동기화하세요), Base32 시크릿을 입력/붙여넣기할 때 약간 잘못 입력했을 수 있습니다. TOTP는 시크릿 자체의 오타를 감지할 내장 방법이 없으므로 시크릿을 한 글자씩 다시 확인하세요.