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 스크립트
base64
와 jq
를 사용하여 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으로 출력을 포맷합니다.