/ 보안 / jwt
멤버
테마: 시스템대비: 표준

JWT 디코더 및 검증기

내 도구에 고정

JSON Web Token을 디코딩하고 만료와 클레임을 확인하며, 비밀 키나 공개 키로 서명을 검증하세요.

브라우저에서만 실행됩니다. 입력한 내용은 당사 서버로 전송되지 않습니다.

페이로드
토큰 · 0줄
붙여넣기파일 열기Ctrl O지우기

페이로드

보기
페이로드 · 0줄
다운로드복사Ctrl Shift C

HS256/384/512에는 시크릿, 그 외에는 PEM(SPKI 또는 인증서) 형식의 공개 키 또는 JWK나 JWKS(토큰의 kid로 키를 고릅니다). 키는 공유되거나 저장되지 않습니다.

로컬테스트됨 · v0.15.0 · 37개의 테스트 케이스

기록 · 0

처리한 입력은 이 페이지가 열려 있는 동안 여기에 표시됩니다. 페이지를 새로 고치면 지워집니다.

코드 예제

내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.

예제

최대 3개 언어에 별표를 하면 모든 도구 페이지에서 맨 앞에 표시됩니다.

JavaScript을(를) 즐겨찾기에 추가
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')

console.log(JSON.stringify(JSON.parse(json), null, 2))

기능 소개

JSON Web Token을 디코딩해 헤더와 페이로드를 읽고, 만료되었는지 확인하고, 시크릿이나 공개 키로 서명을 검증합니다. 토큰은 브라우저에서 디코딩하고, 이 페이지에는 광고가 없으며, 토큰과 키는 공유되거나 저장되지 않습니다.

사용 방법

  1. 토큰을 붙여넣습니다. Bearer 접두사와 줄 바꿈은 무시합니다.
  2. 페이로드를 정리된 형식 또는 압축 JSON으로 읽습니다. 그 아래에서 알고리즘, 상태, 그리고 exp, nbf, iat 시각과 현재 시각과의 차이를 볼 수 있습니다.
  3. 서명을 검증하려면 키를 입력합니다. HS256, HS384, HS512는 시크릿, RS, PS, ES, EdDSA는 공개 키(PEM 또는 JWK)를 사용합니다.
  4. 헤더와 페이로드를 JSON과 클레임 사이에서 전환할 수 있습니다. 클레임 보기는 각 클레임과 그 의미를 나열하고 시간 클레임을 날짜로 보여 줍니다.
  5. 인코드 탭에서 헤더와 페이로드를 작성하고 시크릿이나 개인 키(PKCS#8 PEM 또는 JWK)로 서명할 수 있습니다. 이 탭의 내용은 저장되거나 공유되거나 기록에 추가되지 않습니다.

예제

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

이 토큰의 페이로드입니다.

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

서명은 시크릿 your-256-bit-secret으로 검증됩니다.

알아두면 좋은 점

  • 디코딩은 검증이 아닙니다. 페이로드는 암호화된 것이 아니라 인코딩만 되어 있어서 누구나 읽을 수 있습니다.
  • 서버는 어떤 클레임이든 신뢰하기 전에 반드시 서명을 검증해야 합니다.
  • 알고리즘이 none인 토큰은 서명되지 않은 것이므로 누구든 만들 수 있습니다.
  • 실제로 사용 중인 토큰은 비밀번호처럼 다루세요. 여기에 붙여넣을 때는 만료되었거나 테스트용인 토큰을 권장합니다.
  • 붙여넣은 JWKS는 토큰의 kid로 키를 찾고, 단일 JWK는 그대로 사용합니다. 이 페이지는 토큰 발급자로부터 키 세트를 가져오지 않습니다.
  • 해시보다 짧은 HMAC 시크릿(32, 48, 64바이트)은 추측될 수 있어 경고가 표시됩니다. 시크릿은 UTF-8 텍스트 또는 Base64URL로 읽을 수 있습니다.

JWT란?

JSON Web Token은 점으로 이어진 세 개의 Base64URL 부분입니다. 서명 알고리즘을 알리는 헤더, 토큰의 대상과 만료 시각 같은 클레임을 담은 페이로드, 그리고 서명입니다. 앞의 두 부분은 누구나 읽을 수 있고, 키를 가진 쪽에서 온 토큰임을 증명하는 것은 서명뿐입니다.

자주 묻는 질문

디코딩과 검증은 같은 건가요?

아니요. 디코딩은 암호화되지 않은 내용을 읽을 뿐입니다. 검증은 키로 서명을 확인하는 것이며, 서버는 어떤 클레임이든 신뢰하기 전에 이를 해야 합니다.

exp, nbf, iat는 무슨 뜻인가요?

exp는 토큰이 만료되는 시각, nbf는 그 전에는 유효하지 않은 시각, iat는 발급 시각이며 모두 1970년 이후의 초 단위입니다. 이 도구는 기기의 시계와 비교합니다.

실제 토큰을 붙여 넣어도 안전한가요?

토큰은 브라우저에서 디코딩되고 저희 서버로 전송되지 않으며 이 페이지에는 광고도 없습니다. 그래도 유효한 토큰은 비밀번호처럼 다루고, 만료되었거나 테스트용인 토큰을 쓰는 것이 좋습니다.

이 도구의 변경 내역

키보드 단축키

닫기

어디서나

도구와 작업 검색
Ctrl K
이 도움말 표시
?
테마 전환
Ctrl Shift L
선택한 도구 고정(검색에서)
Ctrl P

도구에서

출력을 첫 번째 추천으로 보내기
Ctrl ↵
파일을 입력으로 열기
Ctrl O
출력 복사
Ctrl Shift C
검색 닫기esc
도구Base64 인코더 및 디코더텍스트를 Base64로 인코딩하거나 Base64를 텍스트로 디코딩합니다. 표준 및 URL 안전 알파벳을 지원합니다.인코딩JSON 포맷터 및 검증기JSON을 포맷, 압축, 검증하며 오류의 정확한 줄과 열을 알려 줍니다.포맷정규식 테스터실시간 하이라이트, 캡처 그룹, 쉬운 말 설명과 함께 JavaScript 정규식을 테스트합니다.텍스트UUID·ULID 생성기UUID v4, UUID v7, ULID를 한꺼번에 생성하거나, ID를 붙여 넣어 버전, 변형, 타임스탬프를 확인하세요.생성기Unix 타임스탬프 변환기Unix 타임스탬프와 날짜를 서로 변환합니다. 모든 시간대를 지원하며 ISO 8601, RFC 2822, 상대 시간도 보여 줍니다.날짜 및 시간해시 및 HMAC 생성기텍스트나 파일의 MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3, CRC-32 해시를 계산하고 HMAC도 선택할 수 있습니다.보안비밀번호 생성기 및 강도 검사기무작위 비밀번호, 암호 문구, PIN을 생성하거나 비밀번호가 얼마나 강한지 확인하세요.보안JWT 디코더 및 검증기JSON Web Token을 디코딩하고 만료와 클레임을 확인하며, 비밀 키나 공개 키로 서명을 검증하세요.보안CIDR 및 IP 서브넷 계산기IPv4·IPv6 네트워크의 범위, 마스크, 크기를 계산하고 서브넷으로 나누며, 무엇이 무엇을 포함하거나 겹치는지 확인하세요.네트워크Cron 표현식 해설기cron 표현식을 쉬운 말로 읽고, 어느 시간대에서든 다음 실행 시각을 확인하며, 표준 형태로 정리하세요.날짜 및 시간줄 정렬텍스트 줄을 A에서 Z, Z에서 A, 자연 순서(file2가 file10보다 앞), 코드 포인트, 숫자 또는 길이 기준으로 정렬합니다.텍스트중복 줄 제거목록에서 중복된 줄을 제거합니다. 첫 번째 또는 마지막 사본을 남기거나, 대소문자나 공백을 무시하거나, 반복되는 모든 줄을 없앨 수 있습니다.텍스트목록과 텍스트 비교두 목록을 줄 단위로 비교합니다. 둘 다에 있거나, 하나에만 있거나, 어느 쪽에든 있는 줄을 찾고, 표시된 줄 차이를 나란히 볼 수 있습니다.텍스트대소문자 변환과 슬러그텍스트를 camelCase, snake_case, kebab-case, Title Case 등으로 변환하거나 제목을 악센트 처리가 된 URL 슬러그로 바꿉니다.텍스트URL 인코딩·디코딩·분석URL용으로 텍스트를 퍼센트 인코딩·디코딩하거나, URL을 스킴·호스트·경로·쿼리로 나누고 쿼리를 표로 편집합니다.인코딩검증기: IBAN·BSN·VATIBAN, 네덜란드 BSN, 신용카드 번호, EU VAT 번호, 이메일 주소, URL, ISBN을 검증하고 실패하면 이유를 알려 줍니다. 한 줄에 값 하나.검증HTML 엔티티 인코딩·디코딩텍스트를 이름·10진·16진 엔티티로 HTML용으로 이스케이프하거나 &, é 같은 엔티티를 다시 문자로 바꿉니다.인코딩문자열 이스케이프와 언이스케이프JSON·JavaScript 문자열, SQL 문자열, CSV 필드, 정규식 또는 셸 단어에 맞게 텍스트를 이스케이프하거나 이스케이프를 되돌립니다.인코딩EAN·UPC·GTIN 체크 디지트EAN-8, EAN-13, UPC-A, GTIN-14의 체크 디지트를 검증하고 빠진 자리를 계산하며, GS1 접두사로 국가를 읽고 ISBN-10과 EAN-13을 서로 변환합니다. 한 줄에 코드 하나.검증테스트 데이터 생성기테스트용 IBAN, BSN, EAN 바코드, EU 부가세 번호를 한꺼번에 생성합니다. 검증은 통과하지만 누구의 것도 아닙니다.생성기SQL 포매터·압축기SQL을 절마다 줄을 나눠 정리하거나 한 줄로 압축합니다. MySQL, PostgreSQL, SQLite, SQL Server, BigQuery를 지원합니다.포맷진법 변환기2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 숫자를 변환합니다. 큰 수, 2의 보수, 비트 보기 지원.인코딩YAML·TOML·JSON 변환기JSON, YAML, TOML을 서로 변환하거나 문서를 검증하고 정리합니다. 모든 오류에 줄과 열을 표시합니다.포맷CSV·JSON 변환기CSV를 JSON 배열로, JSON을 CSV로 변환합니다. 구분 기호를 자동으로 감지하고 세미콜론과 소수점 쉼표를 쓰는 Excel 파일도 읽습니다.데이터Glob 및 .gitignore 테스터경로 목록에 glob 패턴과 .gitignore 규칙을 시험해 어떤 경로가 어떤 규칙으로 일치하는지 확인합니다.텍스트색상 변환기색상을 HEX, RGB, HSL, HWB, OKLCH로 변환하고, 배경과의 WCAG 대비를 확인하고, Material 3 톤 팔레트도 만들 수 있습니다.포맷chmod 계산기Unix 파일 권한을 8진수(755), 문자(rwxr-xr-x), ls -l, chmod 절 사이에서 변환합니다. 체크박스 격자와 setuid, setgid, sticky 비트를 지원합니다.보안User-Agent 분석기User-Agent 문자열에서 브라우저, 엔진, OS, 기기 종류와 봇 여부를 읽어 줍니다. 비워 두면 내 브라우저를 읽습니다.네트워크cURL을 코드로 변환cURL 명령을 붙여 넣으면 같은 요청을 fetch, Axios, Python requests, Go, PHP 코드로 보여 줍니다. 아무것도 실행하거나 전송하지 않습니다.네트워크마크다운 미리보기마크다운을 쓰면 입력하는 대로 렌더링해 보여 주고 HTML도 복사할 수 있습니다. 원시 HTML은 텍스트로 표시되고 링크는 검사되므로 미리보기에서 아무것도 실행되지 않습니다.포맷바코드·QR 코드 생성기QR 코드, EAN-13, UPC-A, Code 128, ITF-14, Data Matrix를 만들어 SVG나 PNG로 저장하거나, 이미지에서 코드를 읽습니다.생성기페이지변경 내역릴리스별 변경 사항페이지소개codeknife.dev가 무엇이며 누가 만드는지페이지아이디어개선안을 제안하고 다른 방문자의 아이디어에 투표하세요.페이지개인정보브라우저를 떠나는 것과 저장되는 것페이지접근성적합성, 알려진 제한 사항, 문제 신고 방법페이지멤버십광고 제거와 한도 상향페이지동작