가이드

일회용 비밀번호(TOTP/HOTP) 및 임의 확인 코드를 생성하는 방법

Base32 비밀키를 사용해 HMAC-SHA1 기반의 TOTP 및 HOTP 일회용 비밀번호(6자리/8자리)를 빠르고 정확하게 생성하는 방법을 안내합니다.

도구 OTP 생성기

Base32 형식의 보안 비밀키를 사용하면 2단계 인증에 필요한 일회용 번호(OTP)를 손쉽게 계산할 수 있습니다. 시간의 흐름에 따라 갱신되는 TOTP 방식과 카운터 증가에 따라 값이 변하는 HOTP 방식을 상황에 맞추어 선택해야 합니다.

인증 방식과 기준 설정 확인하기

온라인 인증 환경에서는 HMAC-SHA1 기반의 알고리즘을 널리 사용합니다. OTP 생성기를 사용하기 전에 발급받은 비밀키와 인증 방식을 먼저 확인해야 합니다.

  • TOTP 방식: 현재 시스템 시간을 일정 주기(기본 30초) 단위로 나누어 코드를 생성합니다.
  • HOTP 방식: 시간과 무관하게 0 이상의 정수 카운터 값을 기준으로 코드를 생성합니다.
  • 자릿수: 시스템 요구사항에 따라 6자리 또는 8자리 중 하나를 선택합니다.

2단계 인증 정보를 모바일 앱 등에 시각적으로 등록하려면 QR 코드 생성기와 함께 활용하는 것도 효과적입니다.

단계별 일회용 코드 생성 순서

  1. Base32 보안 비밀키를 입력란에 입력합니다. 문자열 앞뒤의 공백은 자동으로 정리됩니다.
  2. 인증 방식을 시간 기반(TOTP)과 카운터 기반(HOTP) 중에서 선택합니다.
  3. 필요한 코드 자릿수를 6자리 또는 8자리 중에서 지정합니다.
  4. TOTP 방식인 경우 유효 주기(초)를, HOTP 방식인 경우 정수 카운터 값을 설정합니다.
  5. 생성 버튼을 눌러 계산된 인증 코드 번호와 유효 시간을 확인합니다.

생성 결과 및 남은 시간 확인

TOTP 방식을 실행하면 현재 주기에 해당하는 숫자 코드와 함께 다음 갱신까지 남은 시간(초)이 표시됩니다. 주기가 지나면 새로운 코드로 자동 변경되므로 제한 시간 안에 번호를 입력해야 합니다. HOTP 방식은 입력한 정수 카운터에 대응하는 고정된 코드를 즉시 반환합니다.

실제 사용 예시

Base32 비밀키 JBSWY3DPEHPK3PXP를 6자리 TOTP 기본값(30초 주기)으로 실행하면 현재 시간에 맞춘 6자리 숫자 코드가 생성되고 남은 초 단위 유효 시간이 함께 표시됩니다.

제한 사항 및 주의할 점

  • Base32 규격에 맞지 않는 문자가 포함된 비밀키는 처리되지 않습니다.
  • 유효 주기는 1초 이상의 양의 정수여야 하며 소수점이나 음수는 허용되지 않습니다.
  • HOTP 카운터 값은 0 이상의 정수여야 정상적으로 코드가 계산됩니다.

자주 발생하는 오류 및 해결 방법

  • 코드가 일치하지 않는 경우: 사용자 기기의 시계가 표준 시간과 어긋나 있으면 TOTP 코드가 불일치할 수 있으므로 시각 동기화를 확인하세요.
  • 잘못된 비밀키 형식: Base32 인코딩에 허용되지 않는 특수문자나 알파벳 외 문자가 들어있는지 점검하세요.

자주 묻는 질문

TOTP와 HOTP의 가장 큰 차이는 무엇인가요?

TOTP는 실시간 시계를 기준으로 주기에 따라 코드가 계속 바뀌며, HOTP는 사용자가 전달한 카운터 정수 값에 따라서만 코드가 바뀝니다.

기본 유효 주기는 몇 초인가요?

표준 TOTP 설정의 기본 유효 주기는 30초이며 필요에 따라 다른 정수 초 단위로 변경할 수 있습니다.

비밀키의 공백이나 대소문자도 영향을 주나요?

입력 시 앞뒤 공백은 자동으로 무시되며 소문자는 대문자로 정규화되어 표준 규격에 맞게 처리됩니다.

도구

OTP 생성기