원본 값 또는 새 생성 선택
처음에는 입력이 비어 있습니다. 기본 32바이트는 43자 검증자가 됩니다. 크기를 바꾸기만 하면 새 값을 만들지 않으며, 생성 버튼을 눌러야 미리보기가 나옵니다.
- 진행 중인 교환에는 처음 사용한 검증자를 유지하세요.
OAuth 개발과 디버깅
기존 검증자의 S256을 계산하고 필요할 때만 예상 챌린지와 비교합니다.
ASCII 문자 A–Z, a–z, 0–9, -, ., _, ~를 43–128자 입력하세요. 공백과 줄바꿈을 제거하지 않습니다.
완전히 비우면 비교하지 않습니다. 입력한다면 = 없이 정규 Base64URL 43자여야 합니다.
형식이 맞아도 직접 입력한 검증자가 무작위이거나 예측 불가능하다는 뜻은 아닙니다.
입력은 현재 페이지에서 처리하며 도구가 업로드하거나 저장하지 않습니다.
다음 수동 생성에만 적용합니다. 무작위 바이트를 패딩 없는 Base64URL로 바꿉니다. SHA-256 출력은 항상 256비트입니다.
검증자를 붙여 넣거나 생성할 값을 미리 확인하세요.
토큰 요청에서 검증자 오류가 나면 새 값을 만들기 전에 원래 값을 확인하세요. PKCE 생성기는 기존 코드 검증자를 받아 해당 코드 챌린지를 다시 계산합니다. PKCE 매개 변수 생성은 별도 버튼으로 실행하므로 진행 중인 요청의 값을 자동으로 바꾸지 않습니다.
검증자는 토큰 교환에, 챌린지는 인가 요청에 사용합니다. 서로 맞는다는 결과는 로컬 계산이 일치한다는 뜻입니다. 실제 로그인, 리디렉션 주소 또는 공급자 설정이 올바르다는 판정은 아닙니다.
다른 검증자를 생성하면 이전 챌린지와 맞지 않는 것이 정상입니다. PKCE 생성기는 원래 문자열을 그대로 계산하므로 실제 요청에 보낸 값과 대조할 수 있습니다.
공백이나 잘못된 마지막 문자는 입력 오류로 표시합니다. 문법에 맞지만 다른 챌린지는 불일치로 표시하여 인코딩 문제와 잘못된 쌍을 구분합니다.
처음에는 입력이 비어 있습니다. 기본 32바이트는 43자 검증자가 됩니다. 크기를 바꾸기만 하면 새 값을 만들지 않으며, 생성 버튼을 눌러야 미리보기가 나옵니다.
예상 챌린지를 완전히 비우면 계산만 합니다. 자동 계산은 편집 후 350ms에 실행됩니다. 끄면 계산 버튼이나 Ctrl/Cmd+Enter로 실행합니다.
생성, 예제, 비우기는 미리보기 후 적용합니다. 실행 취소는 이전 입력과 결과를 복원합니다. 현재 비교 상태를 확인한 뒤 개별 값이나 전체 JSON을 내보내세요.
32, 48, 64, 96바이트를 선택하면 43, 64, 86, 128자가 됩니다. 브라우저의 안전한 난수 기능을 사용하며 생성은 항상 직접 실행합니다.
검증자의 ASCII 바이트를 SHA-256으로 해시한 뒤 32바이트 결과를 Base64URL로 인코딩합니다. 패딩 없는 챌린지는 43자입니다.
계산한 챌린지와 입력한 값을 정확히 비교합니다. 비교 안 함, 일치, 불일치를 각각 보고하며 입력이 바뀌면 결과를 갱신해야 합니다.
검증자와 챌린지를 따로 복사하거나 방식, 길이, 형식 판정, 예상 값, 비교 결과, 무작위 원본 정보를 JSON으로 복사하고 다운로드할 수 있습니다.
43–128자 길이와 허용된 ASCII 문자를 확인하세요. 일반 Base64의 +, /, =나 공백이 섞이면 안 됩니다. PKCE 생성기는 오류 위치를 표시하며 원문을 자동 수정하지 않습니다.
같은 인가 요청의 원본 검증자인지 확인하세요. 검증자 자체를 해시하고 바이너리 결과를 인코딩해야 합니다. 다른 요청의 값, 줄바꿈, 16진수 해시의 재인코딩은 다른 챌린지를 만듭니다.
동일한 규칙을 적용합니다. 검증자의 ASCII 바이트를 SHA-256으로 처리하고 그 바이너리 결과를 Base64URL로 인코딩하며 = 패딩을 제거합니다. 이 도구로 결과를 비교할 수 있지만 PowerShell 코드를 실행하지는 않습니다.
SHA-256을 계산할 수 있다면 S256을 사용하세요. plain은 검증자를 그대로 챌린지로 보냅니다. 이 페이지는 S256만 계산하며 plain으로 바꾸지 않습니다.
새 인가 시도마다 새로운 무작위 검증자와 챌린지를 만드세요. 같은 교환이 진행되는 동안에는 원본 검증자를 유지해야 하며, 중간에 바꾸면 비교가 실패합니다.
계산 또는 검증 오류를 발견했나요?