본문으로 건너뛰기
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 코드 이미지만 있다면 먼저 별도 디코더로 스캔한 뒤 시크릿만 여기에 붙여 넣으세요.

이 주제의 가이드

관련 도구