0

TOTP 생성기 - 실시간 2FA 인증 코드

Base32 TOTP 비밀 번호를 붙여넣고 실제 라이브 6자리 인증 코드가 30초마다 회전하는 것을 확인하세요. 브라우저에서 완전히 오프라인입니다.

- -

30

처리 중... 0%

결과

이 도구는 Google Authenticator 또는 Authy와 같은 앱에서 표시하는 것과 동일한 6자리 회전 코드인 Base32 비밀에서 표준을 준수하는 실제 TOTP(Time-based One-Time Password) 코드를 생성합니다. 2단계 인증을 설정할 때 제공된 비밀(일반적으로 QR 코드 뒤에 숨겨진 동일한 문자열)을 붙여넣고 전화 앱에서와 마찬가지로 라이브 코드 카운트다운을 확인하고 30초마다 새로 고침하세요. 이는 귀하가 소유하거나 제어하는 ​​2FA 비밀을 테스트하고 확인하기 위한 것입니다. 즉, 구축 중인 로그인 흐름을 디버깅하고, 프로비저닝 QR을 버리기 전에 백업 코드를 확인하거나, 비밀이 올바르게 입력되었는지 다시 확인하는 것입니다.

내부적으로 이는 RFC 4226(HOTP)을 기반으로 구축된 RFC 6238(TOTP)의 진정한 구현이며, 외관상 카운트다운이 아닙니다. Base32 비밀은 RFC 4648에 따라 원시 키 바이트로 디코딩되고, 현재 Unix 시간은 이동 카운터를 얻기 위해 시간 단계로 나누어지며, 해당 카운터는 8바이트 빅엔디안 버퍼로 인코딩됩니다. 브라우저의 기본 Web Crypto API(crypto.subtle)는 선택한 해시를 사용하여 해당 버퍼에 대해 HMAC를 계산합니다. SHA-1은 기존 인증 앱과의 호환성을 위해 거의 보편적인 기본값으로 유지되는 반면 SHA-256 및 SHA-512는 더 강력한 변형을 지원하는 설정을 위해 제공됩니다. 그런 다음 RFC 4226의 동적 잘림은 마지막 바이트에서 가져온 오프셋에서 HMAC 출력에서 ​​4바이트를 가져와서 최상위 비트를 마스크하고 결과 모듈로 10^6 또는 10^8을 줄여 6자리 또는 8자리 코드를 생성합니다. 이는 휴대전화의 인증 앱이 내부에서 실행하는 것과 똑같은 산술입니다.

프로세스의 모든 부분은 로컬에서 발생합니다. 서버 구성 요소도 없고, 비밀을 전달하는 분석 비콘도 없으며, 어떤 종류의 외부 API 호출도 없습니다. 필드에 붙여넣은 Base32 텍스트는 탭에서 실행되는 JavaScript에 의해 직접 구문 분석되며 탭을 떠나지 않습니다. 이를 통해 신뢰할 수 있는 컴퓨터에서 2FA 비밀의 온전함을 확인하는 안전한 방법이 됩니다. 하지만 인증 자료를 다루는 다른 도구와 마찬가지로 공유 또는 공용 컴퓨터에 비밀을 붙여넣는 것을 피해야 하며, 소유한 계정에 연결되어 있거나 명시적으로 테스트 권한이 있는 코드에만 이 방법을 사용해야 합니다.

실제 TOTP 배포가 완벽하게 균일하지 않기 때문에 알고리즘, 자릿수 및 시간 단계 제어가 존재합니다. 대부분의 소비자 서비스는 6자리 및 30초 단계의 SHA-1을 사용하지만 일부 기업 및 개발자 도구는 SHA-256 또는 SHA-512 비밀, 8자리 코드 또는 15초 또는 60초와 같은 비표준 시간 단계를 발행합니다. 이러한 설정을 프로비저닝 URI 또는 ​​설정 페이지가 지정하는 것과 일치시키면 인증 앱이 표시할 코드를 정확하게 재현할 수 있습니다. 이는 자체 TOTP 확인 서버를 구현하고 비교할 신뢰할 수 있는 오프라인 참조가 필요할 때 매우 중요합니다.