Base64 Encode/Decode
Base64 인코딩 방식을 사용하여 데이터를 인코딩하고 디코딩할 수 있습니다.
지원되는 기능은 다음과 같습니다:
Base64 인코딩 : Base64 인코딩 방식을 사용하여 데이터를 인코딩합니다.
Base64 디코딩 : Base64 인코딩 방식을 사용하여 데이터를 디코딩합니다.
Base64 URL 인코딩 : Base64 URL 인코딩 방식을 사용하여 데이터를 인코딩합니다.
Base64 URL 디코딩 : Base64 URL 인코딩 방식을 사용하여 데이터를 디코딩합니다.
표준 Base64 vs URL-safe Base64
두 가지 유형의 Base64 인코딩을 사용할 수 있습니다:
- 표준 Base64
사용 문자:
A-Z,a-z,0-9,+,/,=(패딩용)일반적인 데이터 저장 및 전송에 적합
특수문자로 인해 URL에서 사용 시 문제가 발생할 수 있음
- URL-safe Base64
사용 문자:
A-Z,a-z,0-9,-,_(패딩 없음)문자 치환:
+→-,/→_, 패딩=제거URL, JWT 토큰, 파일명에서 안전하게 사용 가능
웹 애플리케이션 및 API 토큰에 권장
문자 매핑
용도 |
표준 Base64 |
URL-safe Base64 |
|---|---|---|
플러스 문자 |
|
|
슬래시 문자 |
|
|
패딩 |
|
(제거됨) |
사용 사례 |
일반 인코딩 |
URL, JWT, 파일명 |
다른 결과를 보여주는 예시
표준 Base64와 URL-safe Base64 인코딩이 다른 결과를 생성하는 예시입니다:
예시 1: 특수문자
입력: "Hello>World?"
${_base64.encode('Hello>World?')} // 결과: SGVsbG8+V29ybGQ/
${_base64.urlEncode('Hello>World?')} // 결과: SGVsbG8-V29ybGQ_
예시 2: 패딩 차이
입력: "Test+Data/Info"
${_base64.encode('Test+Data/Info')} // 결과: VGVzdCtEYXRhL0luZm8=
${_base64.urlEncode('Test+Data/Info')} // 결과: VGVzdCtEYXRhL0luZm8
예시 3: 복합 특수문자
입력: "Data??>><<++//=="
${_base64.encode('Data??>><<++//==')} // 결과: RGF0YT8/Pj48PCsrLy89PQ==
${_base64.urlEncode('Data??>><<++//==')} // 결과: RGF0YT8_Pj48PCsrLy89PQ
URL 사용 예시
문제가 있는 경우: URL에서 표준 Base64 사용
https://example.com/api?token=dXNlcjpwYXNzd29yZEBkb21haW4uY29tL3BhdGg/cXVlcnk9dmFsdWU=
문제점:
- '+' 문자가 URL에서 공백으로 해석됨
- '/' 문자가 경로 구분자로 해석됨
- '=' 문자가 파싱 문제를 일으킬 수 있음
권장 방법: URL에서 URL-safe Base64 사용
https://example.com/api?token=dXNlcjpwYXNzd29yZEBkb21haW4uY29tL3BhdGg_cXVlcnk9dmFsdWU
장점:
- URL 파라미터에서 안전함
- 특수문자 충돌 없음
- 패딩 없이 깔끔한 외관
기본 사용 예시
// 표준 Base64 인코딩/디코딩
${_base64.encode('안녕하세요! base64 테스트')}
${_base64.decode('7JWI64WV7ZWY7IS47JqUISBiYXNlNjQg7YWM7Iqk7Yq4')}
// URL-safe Base64 인코딩/디코딩
${_base64.urlEncode('안녕하세요! base64 테스트')}
${_base64.urlDecode('7JWI64WV7ZWY7IS47JqUISBiYXNlNjQg7YWM7Iqk7Yq4')}
언제 어떤 방법을 사용할지
- 표준 Base64 (encode/decode)를 사용하는 경우:
데이터베이스에 데이터 저장
일반적인 데이터 전송
이메일 첨부파일
URL/파일명 제한이 없는 경우
- URL-safe Base64 (urlEncode/urlDecode)를 사용하는 경우:
URL 파라미터로 데이터 전달
JWT 토큰 생성
파일명 생성
API 인증 토큰
모든 웹 기반 애플리케이션