JWT 토큰 디코딩 및 출력

JWT 토큰 내부를 빠르게 살펴보기

Page content

JWT 토큰을 직접 명령줄에서 디코딩 및 출력하는 몇 가지 효과적인 방법을 아래에 소개합니다:

대형 화면에 이해할 수 없는 내용이 있는 남자

1. jq 사용하기

jq 도구는 JWT 토큰을 디코딩하고 예쁘게 출력하는 데 사용할 수 있습니다:

  • 명령어:

    echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

    이 명령어는 JWT를 구성 요소(헤더 및 페이로드)로 나누고 Base64에서 디코딩한 후 JSON 형식으로 포맷합니다.

  • 예시:

    echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \
      | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

2. Bash 스크립트

base64jq를 사용하여 JWT 토큰을 디코딩하는 커스텀 Bash 스크립트를 사용할 수 있습니다:

  • 스크립트:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • 이 스크립트를 파일에 저장(예: decode_jwt.sh)한 후 실행 가능하게 만드세요(chmod +x decode_jwt.sh)하고 토큰을 인수로 전달하여 실행합니다.


3. Zsh 함수

빠른 접근을 위해 .zshrc 파일에 다음 함수를 추가하세요:

  • 함수:
    function jwt() {
        for part in 1 2; do
            b64="$(cut -f$part -d. "
    

이 함수는 OpenSSL을 사용하여 헤더와 페이로드를 디코딩하고 Python의 json.tool로 포맷합니다.


4. jwt-cli 사용하기

JWT를 쉽게 디코딩하려면 jwt-cli 도구를 설치하세요:

  • 설치:

    brew tap sgaunet/homebrew-tools
    brew install sgaunet/tools/jwt-cli
    
  • 명령어:

    jwt-cli decode 
    

이 도구는 JWT의 인코딩 및 서명도 지원합니다[2].


5. OpenSSL을 사용한 간단한 한 줄 명령어

추가 도구 없이 빠른 해결책을 원한다면:

  • 명령어:
    echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
    

이 명령어는 awk으로 토큰을 분할하고 base64로 디코딩한 후 Python으로 출력을 포맷합니다.

유용한 링크