OAuth 2.0 PKCE 생성기
OAuth 2.0 PKCE(RFC 7636)용 code_verifier + S256/plain code_challenge 생성. authorization URL과 토큰 교환 curl까지 자동 작성.
사용법
- Verifier 길이 설정(기본 64, 최소 43, 최대 128).
- S256(항상 권장) 또는 plain(레거시 서버용) 선택.
client_id,redirect_uri,scope, OAuth 엔드포인트 입력.- 사용자를 authorization URL로 보내고,
?code=...콜백을 받으면 curl을 실행해 토큰 획득.
자세한 설명
펼치기접기
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만 붙여넣으면 됩니다.
자주 묻는 질문
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 헤더로 인코딩 — 또는 기존 헤더 붙여넣어 누군지 확인.
네트워크
CAA 레코드 빌더 (DNS 인증 기관 권한 제한)
CAA (Certificate Authority Authorization) DNS 레코드 생성 — 신뢰하는 CA만 도메인의 TLS 인증서를 발급할 수 있도록 제한.
네트워크
Argon2 해시 생성·검증기 (Argon2id)
Argon2id·Argon2i·Argon2d로 비밀번호를 해시해 $argon2id$ PHC 문자열을 만들거나, 저장된 해시와 비밀번호가 맞는지 확인합니다. 브라우저에서만 실행됩니다.
개발
mailto: 링크 빌더
받는사람·참조·숨은참조·제목·본문을 입력해서 RFC 6068 규격으로 퍼센트 인코딩된 mailto: URL을 만듭니다. <a> 태그에 바로 붙여서 쓸 수 있습니다.
네트워크
QR 코드 생성
텍스트나 URL로 맞춤 QR 코드를 만들고 내려받으세요.
이미지
상대 URL 해석기 (RFC 3986)
RFC 3986대로 상대 참조를 기준 URI에 대해 해석하고, 점 세그먼트 추적과 브라우저의 답을 나란히 보여 줍니다.
네트워크
랜덤 창작 프롬프트 생성기
그림·글쓰기·사진·코딩 사이드프로젝트·세계관 구축을 위한 신선한 창작 프롬프트 — 한 번에 여러 개 뽑고 리롤로 새 배치를 받아 막힘을 깨뜨리세요.
랜덤