(Android/안드로이드) Base64 인코딩/디코딩 완전 정리

✨ 개요


1. 요약


2. Base64란? (왜 쓰나)

사용 목적

주의: 암호화가 아니다


3. Android Base64 API (android.util.Base64)

Android에서는 주로 아래 클래스를 사용합니다.

import android.util.Base64

4. Kotlin/Android: Base64 인코딩 예제

4.1 ByteArray → Base64 String

val bytes: ByteArray = "hello".toByteArray(Charsets.UTF_8)
val encoded: String = Base64.encodeToString(bytes, Base64.NO_WRAP)

4.2 Base64 String → ByteArray (디코딩)

val decodedBytes: ByteArray = Base64.decode(encoded, Base64.DEFAULT)
val decodedText = decodedBytes.toString(Charsets.UTF_8)

5. 옵션(flags) 정리

Android Base64는 두 번째 인자로 flags(옵션)를 받습니다.


6. 어떤 옵션을 언제 쓰는지

사용처 추천 flags 이유
JSON 필드/로컬 저장/로그 NO_WRAP 줄바꿈 금지
HTTP Header (Authorization 등) NO_WRAP 헤더 줄바꿈은 위험
URL/QueryString/딥링크 파라미터 URL_SAFE or NO_WRAP URL 예약문자 회피
“=” 패딩이 문제되는 시스템 NO_PADDING + (URL_SAFE/NO_WRAP) 상대가 허용할 때만

7. 자주 나오는 문제/주의사항



Related Posts