PowerShell로 Base64 디코딩
Source: Dev.to
소개
개발자는 구성 파일이나 API 응답에서 Base64 문자열을 자주 마주합니다. 이는 바이너리 데이터를 텍스트 형식으로 표현한 것입니다. Linux 사용자는 base64 명령으로 이러한 문자열을 쉽게 디코딩할 수 있지만, Windows 사용자는 PowerShell에서 직접 대응되는 명령이 없을 때가 많습니다.
PowerShell은 .NET 프레임워크에 의존하며, 이는 데이터 조작을 위한 강력한 시스템 라이브러리를 제공합니다. 이러한 라이브러리를 활용하면 외부 도구 없이 Base64 문자열을 디코딩할 수 있습니다.
Base64 디코딩 작동 방식
-
Base64 문자열 → 바이트 배열
Base64 인코딩된 문자열을 바이트 배열로 변환합니다. -
바이트 배열 → 읽을 수 있는 텍스트
적절한 텍스트 인코딩(대부분의 최신 텍스트에 대해 UTF‑8 사용)으로 바이트 배열을 문자열로 디코딩합니다.
단계별 가이드
단계 1: Base64 문자열 정의
$EncodedString = "SGVsbG8gV29ybGQ=" # Example: "Hello World"
단계 2: 문자열을 바이트 배열로 변환
$Bytes = [System.Convert]::FromBase64String($EncodedString)
단계 3: 바이트 배열을 텍스트로 디코딩
$DecodedText = [System.Text.Encoding]::UTF8.GetString($Bytes)
결과
Hello World
장점
- 모든 최신 버전의 PowerShell에서 작동합니다.
- 외부 도구가 필요 없습니다.
- 자동화 스크립트에 이상적입니다.
기본이 되는 .NET 타입을 이해하면 데이터를 직접 조작할 수 있으며, 이는 명령을 블랙 박스로 취급하기보다 객체와 함께 작업하는 PowerShell 방식에 부합합니다.