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 환경 테스트, 본인이 관리하는 시크릿에서 코드 복구, 인증 흐름 개발/디버깅 용도이며, 본인 소유가 아닌 계정의 인증 우회용이 아닙니다.
사용법
- Base32 시크릿(설정 화면에 표시되는 문자·숫자의 긴 문자열)을 시크릿 입력란에 붙여 넣으세요. 공백과 하이픈은 무시됩니다.
- 서비스가 사용하는 자리수·주기·알고리즘에 맞춰 옵션을 조정하세요. 구글 OTP 기본값은 6자리 / 30초 / SHA-1 입니다.
- 현재 코드를 클릭하면 복사됩니다. 카운트다운 링이 0에 가까우면 ‘다음 코드’ 패널을 확인해 현재 코드와 다음 코드 중 어느 쪽을 쓸지 결정하세요.
- 코드가 거부되면 기기 시간이 정확한지 확인하세요 — 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 코드 이미지만 있다면 먼저 별도 디코더로 스캔한 뒤 시크릿만 여기에 붙여 넣으세요.
이 주제의 가이드
관련 도구
Base32 인코더 / 디코더
Base32(RFC 4648) 인코딩·디코딩 — Standard와 base32hex 변형 지원. TOTP secret이나 Crockford 스타일 ID에 유용.
OAuth 2.0 PKCE 생성기
OAuth 2.0 PKCE(RFC 7636)용 code_verifier + S256/plain code_challenge 생성. authorization URL과 토큰 교환 curl까지 자동 작성.
HTTP 상태 코드 레퍼런스
1xx-5xx 모든 HTTP 상태 코드 검색 — 요약·RFC·사용 시점·흔한 함정 포함.
HMAC 생성기 (SHA-1·256·384·512)
Web Crypto로 HMAC 서명 계산 — 웹훅 페이로드 서명, API 요청 검증, hex 또는 base64.
HTML / CSS / JS 미니파이어
HTML·CSS·JavaScript의 공백·주석을 제거 — 크기 절감 확인하고 결과 복사.
ASCII 코드 표
256행 ASCII / 확장 ASCII 표 — 10진·16진·8진·2진 + 제어 문자 이름. 검색·복사.