AZ Tools

TOTP 코드 생성기

개발

TOTP(Time-based One-Time Password, RFC 6238)는 구글 OTP·Authy·1Password·대부분의 기업 다단계 인증 뒤에 있는 표준 알고리즘입니다. 서비스가 2FA 설정 시 알려준 Base32 시크릿(QR 코드에 인코딩된 동일한 문자열)을 붙여 넣으면, 본 도구는 현재 6자리 코드, 다음 회전까지 남은 초를 보여 주는 카운트다운 링, 그리고 다음 회전 코드까지 함께 표시합니다. 자리수(6/7/8), 주기(15/30/60/120초), 해시(SHA-1·SHA-256·SHA-512)는 모두 변경 가능하며 기본값은 구글 OTP 사양과 일치합니다. 모든 계산은 브라우저의 Web Crypto API 로 처리되어 시크릿이 네트워크로 전송되지 않습니다. 본인의 2FA 환경 테스트, 본인이 관리하는 시크릿에서 코드 복구, 인증 흐름 개발/디버깅 용도이며, 본인 소유가 아닌 계정의 인증 우회용이 아닙니다.

사용법

  1. Base32 시크릿(설정 화면에 표시되는 문자·숫자의 긴 문자열)을 시크릿 입력란에 붙여 넣으세요. 공백과 하이픈은 무시됩니다.
  2. 서비스가 사용하는 자리수·주기·알고리즘에 맞춰 옵션을 조정하세요. 구글 OTP 기본값은 6자리 / 30초 / SHA-1 입니다.
  3. 현재 코드를 클릭하면 복사됩니다. 카운트다운 링이 0에 가까우면 ‘다음 코드’ 패널을 확인해 현재 코드와 다음 코드 중 어느 쪽을 쓸지 결정하세요.
  4. 코드가 거부되면 기기 시간이 정확한지 확인하세요 — TOTP 는 Unix 시간이 초 단위까지 맞아야 동작합니다.

자주 묻는 질문

안전한가요? 시크릿이 어디로 전송되나요?
브라우저 밖으로 나가지 않습니다. Base32 디코딩과 HMAC-SHA 연산 모두 Web Crypto API 로 기기 안에서 실행됩니다. 네트워크 탭을 열어 확인할 수 있습니다. 다만 TOTP 시크릿은 비밀번호와 같으니 신뢰할 수 있는 도구에만 붙여 넣고, 시크릿이 노출되는 스크린샷은 공유하지 마세요.
어떤 설정을 골라야 하나요?
기본값(6자리·30초·SHA-1)은 구글 OTP 사양과 동일하며 대부분의 서비스와 호환됩니다. 일부 은행·기업 시스템은 8자리·60초·SHA-256/512 를 쓰며, 설정 안내에 명시되거나 otpauth:// URI 안에 포함되어 있습니다. 파라미터가 어긋나면 조용히 잘못된 코드가 생성됩니다.
코드가 거부됩니다 — 뭐가 잘못된 거죠?
가장 흔한 원인은 시계 동기화입니다. TOTP 는 기기의 Unix 시간을 사용하므로 30초 이상 어긋나면 모든 코드가 실패합니다. 시간을 동기화하세요(대부분의 OS 는 자동 — NTP 설정을 확인). 그 외 원인: 잘못된 자리수·주기·알고리즘, 시크릿 문자열의 누락·중복, 다른 계정 시크릿 사용.
TOTP 와 HOTP 차이는?
HOTP(RFC 4226)는 ‘다음 코드’ 버튼을 누를 때마다 카운터가 증가하며 서버와 동기화가 필요합니다. TOTP(RFC 6238)는 카운터 대신 현재 Unix 시간 ÷ 주기를 사용하므로 코드가 자동 회전합니다. 현대의 2FA 는 거의 모두 TOTP 를 씁니다.
QR 코드나 otpauth:// URI 를 가져올 수 있나요?
이 도구에서는 Base32 시크릿을 직접 붙여 넣어야 합니다. otpauth:// URI 의 ‘secret=’ 뒤 값이 시크릿입니다. QR 코드 이미지만 있다면 먼저 별도 디코더로 스캔한 뒤 시크릿만 여기에 붙여 넣으세요.

관련 도구