본문으로 건너뛰기
AZ Tools

OAuth 2.0 PKCE 생성기

PKCE(Proof Key for Code Exchange, RFC 7636)는 client_secret을 안전하게 보관할 수 없는 모든 퍼블릭 클라이언트(SPA, 모바일, 데스크톱 앱)에 권장되는 현대 OAuth 2.0 플로우입니다. 이 도구는 암호학적으로 안전한 `code_verifier`(unreserved URI 문자 43-128자)를 생성하고, `code_challenge`(S256은 SHA-256 base64url, plain은 verifier 그대로)를 유도하며, CSRF 방어용 `state`를 포함한 전체 authorization URL을 만듭니다. 함께 제공되는 `curl` 예제로 토큰 교환 단계까지 바로 처리할 수 있습니다 — 콜백 리다이렉트의 `code`만 붙여넣으면 됩니다.

사용법

  1. Verifier 길이 설정(기본 64, 최소 43, 최대 128).
  2. S256(항상 권장) 또는 plain(레거시 서버용) 선택.
  3. `client_id`, `redirect_uri`, `scope`, OAuth 엔드포인트 입력.
  4. 사용자를 authorization URL로 보내고, `?code=...` 콜백을 받으면 curl을 실행해 토큰 획득.

자주 묻는 질문

S256 vs plain, 무엇을 써야 하나요?
항상 S256. plain은 verifier를 challenge로 그대로 보내기 때문에 authorization 요청이 가로채이면 보호 효과가 없습니다. S256은 SHA-256 결과만 보내고 verifier 자체는 1단계에 노출되지 않아 가로채기 공격이 훨씬 어려워집니다. RFC 7636도 S256이 가능하면 plain을 거부하라고 명시합니다.
Verifier 문자 집합이 왜 이런가요?
RFC 7636이 verifier 알파벳을 `[A-Z][a-z][0-9]-._~`(RFC 3986의 unreserved URI 문자)로 지정합니다. 덕분에 URL·헤더·폼 본문 어디서든 이스케이프 없이 안전하게 사용할 수 있습니다.
`state`는 무엇인가요?
클라이언트가 요청마다 생성해 콜백에서 검증하는 불투명 난수 문자열입니다. CSRF 방어: 공격자가 사용자를 악의적 authorization 리다이렉트로 유도해도 앱이 기억한 `state`와 일치하지 않아 응답을 거부할 수 있습니다. 항상 사용하세요.
어디서 실행되나요?
전적으로 브라우저 안에서. Verifier는 `crypto.getRandomValues()`로, SHA-256은 `crypto.subtle.digest()`로 — 모두 Web Crypto API. 외부로 전송되지 않습니다.

관련 도구

HTTP Basic 인증 인코더/디코더

`username:password`를 Base64 `Authorization: Basic` 헤더로 인코딩 — 또는 기존 헤더 붙여넣어 누군지 확인.

네트워크 0 0

CAA 레코드 빌더 (DNS 인증 기관 권한 제한)

CAA (Certificate Authority Authorization) DNS 레코드 생성 — 신뢰하는 CA만 도메인의 TLS 인증서를 발급할 수 있도록 제한. BIND 포맷 + 컨트롤 패널용 tag/value 분리 출력, 흔한 CA (Let's Encrypt, DigiCert, Google, Amazon 등) 원클릭 추가.

네트워크 0 0

mailto: 링크 빌더

받는사람·참조·숨은참조·제목·본문을 입력해서 RFC 6068 규격으로 퍼센트 인코딩된 mailto: URL을 만듭니다. <a> 태그에 바로 붙여서 쓸 수 있습니다.

네트워크 0 0

URI 템플릿 확장기 (RFC 6570)

직접 정의한 변수로 RFC 6570 URI 템플릿 확장 — 네 레벨 모두 지원: 경로·쿼리·프래그먼트·라벨·경로형 연산자, explode·prefix 수정자, 브라우저에서.

네트워크 0 0

HTTP 상태 코드 레퍼런스

1xx-5xx 모든 HTTP 상태 코드 검색 — 요약·RFC·사용 시점·흔한 함정 포함.

네트워크 0 0

QR 코드 생성

텍스트나 URL로 맞춤 QR 코드를 만들고 내려받으세요.

이미지 0 0

랜덤 창작 프롬프트 생성기

그림·글쓰기·사진·코딩 사이드프로젝트·세계관 구축을 위한 신선한 창작 프롬프트 — 한 번에 여러 개 뽑고 리롤로 새 배치를 받아 막힘을 깨뜨리세요.

랜덤 0 0