OTP 코드 생성기·QR 만들기
비밀 키는 이 기기 안에서만 계산에 쓰고 저장하지 않아요. 다른 사람이 쓰는 컴퓨터에서는 실제 계정 키를 넣지 마세요.
인증 앱 등록용 QR 만들기
OTP 코드는 이렇게 만들어져요
Google OTP, Microsoft Authenticator 같은 인증 앱의 6자리 코드는 서버와 앱이 같은 비밀 키를 나눠 갖고, 같은 계산을 해서 만들어요. 인터넷 연결 없이도 코드가 맞는 이유예요. 계산은 공개 표준이에요. HOTP(RFC 4226)는 비밀 키로 ‘카운터 값’의 HMAC을 구한 뒤 그중 4바이트를 골라 10⁶으로 나눈 나머지를 코드로 써요. TOTP(RFC 6238)는 카운터 대신 ‘유닉스 시간 ÷ 30초’를 써서 30초마다 코드가 바뀌어요. 이 도구는 브라우저 내장 Web Crypto의 HMAC으로 같은 계산을 해요.
이럴 때 써요
- 서비스 개발·시험: 로그인에 2단계 인증을 붙일 때 서버가 만든 코드와 맞는지 확인하고, 시험용 비밀 키와 otpauth QR을 만들어 인증 앱에 등록해 볼 수 있어요.
- 백업 키 확인: 2단계 인증을 켤 때 받아 둔 백업 비밀 키(예: JBSW Y3DP …)가 맞는지, 휴대폰을 바꾸기 전에 코드가 똑같이 나오는지 확인할 수 있어요.
- 시간 문제 진단: ‘기준 시각’을 지정하면 그 시각의 코드를 계산해요. 코드가 계속 틀리면 기기 시계가 몇 초 이상 어긋났는지 의심해 보세요.
입력과 QR
비밀 키는 Base32(A–Z, 2–7)로 넣고, 빈칸·하이픈·소문자는 알아서 정리해요. 인증 앱 QR 속 주소(otpauth://totp/서비스:계정?secret=…&issuer=…)를 통째로 붙여 넣으면 방식·알고리즘·자릿수·주기·서비스 이름을 함께 읽어요. ‘새 비밀 키 만들기’는 브라우저의 안전한 난수(crypto.getRandomValues)로 키를 만들고, 그 키로 인증 앱에 등록할 QR 코드를 PNG로 저장할 수 있어요. 결과는 RFC 6238 부록 B의 시험 값(SHA-1·SHA-256·SHA-512, 59초·1111111109초 등)과 같은지 확인했어요.
보안 주의
비밀 키를 가진 사람은 누구나 코드를 만들 수 있어요. 이 페이지는 키를 저장하거나 서버로 보내지 않지만, 공용 컴퓨터나 화면 공유 중에는 실제 계정의 키를 넣지 마세요. 인증 앱을 대신하는 용도보다는 개발·시험·백업 확인에 쓰는 것을 권해요. 이 도구로 다른 사람의 계정 코드를 만들어서는 안 돼요.
참고한 자료
자주 묻는 질문
인증 앱과 코드가 달라요.
기기 시계가 정확한지, 알고리즘·자릿수·주기가 서비스 설정과 같은지 확인하세요. 대부분 SHA-1·6자리·30초예요.
인증 앱 QR 사진을 넣을 수 있나요?
‘QR코드 읽기’ 도구로 QR 속 otpauth 주소를 먼저 읽은 뒤 여기에 붙여 넣으세요.
비밀 키 길이는 얼마가 좋아요?
RFC 4226은 128비트 이상, 권장 160비트(20바이트)예요. Base32로는 32글자예요.
함께 쓰면 좋은 도구
- HMAC 생성기 (HMAC-SHA256 서명 만들기·검증)비밀 키와 메시지로 HMAC-SHA256·SHA-512·SHA-1·MD5 서명을 만들고, 받은 서명과 같은지 확인
- Base32·Base58·Base45·Base85 변환 (인코딩·디코딩)글자·16진수를 Base32, Base32hex, Crockford Base32, Base58(비트코인), Base45, Ascii85, Base85로 바꾸고 풀기
- QR코드 만들기링크·글자 → QR 이미지(PNG·SVG), 색·로고 넣기
- 비밀번호 생성기 (안전한 랜덤 비밀번호)길이·영문 대소문자·숫자·특수문자를 골라 안전한 무작위 비밀번호, 헷갈리는 글자 빼기·강도 표시
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴