# Base64 인코딩 디코딩

> Base64 텍스트를 인코딩하고 디코딩하는 고급 도구입니다. UTF-8 문제 해결, URL 안전 형식 지원, 인코딩 원리 설명. 온라인에서 무료로 사용할 수 있습니다.

URL: https://acrafto.com/ko/base64-encoder-decoder/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

HTTP 헤더에 사용하기 위해 읽을 수 있는 텍스트를 Base64 형식으로 변환하거나, 반대로 API 토큰의 내용을 해독해야 하시나요? 저희 **Base64 텍스트 인코더 및 디코더**는 악센트 부호나 특수 문자 같은 복잡한 문자열도 처리할 수 있는 전문적인 텍스트 문자열 처리 도구입니다.

> **이미지와 함께 작업하시나요?**  
> 코드가 `data:image/png...`로 시작하거나 파일을 텍스트로 변환하려는 경우, 이 도구는 의미 없는 문자만 표시합니다. 이미지 변환을 위한 저희 전문 도구를 사용하세요.

## Base64 형식은 어떻게 작동하나요?

많은 사람들이 매일 Base64를 사용하지만, 그 작동 방식은 거의 알지 못합니다. 이것은 마법이 아니라 비트 단위의 단순한 수학입니다.

컴퓨터의 일반 텍스트는 8비트(1바이트) 단위로 저장됩니다. 그러나 Base64는 64개의 문자(`A-Z`, `a-z`, `0-9`, `+`, `/`)로 구성된 “알파벳”을 사용합니다. `2^6 = 64`이므로, Base64 문자 하나는 정확히 **6비트**의 정보를 나타냅니다.

**변환 과정 (알고리즘):**

1. 텍스트의 세 문자를 가져옵니다 (3 × 8비트 = 24비트).
2. 이 24비트를 6비트씩 네 그룹으로 나눕니다.
3. 각 그룹에 Base64 테이블에서 해당 문자를 할당합니다.

**결과:** 3개의 문자를 4개의 문자로 만들기 때문에, 결과 Base64 문자열은 항상 원본 텍스트보다 약 **33% 더 길어집니다.**

## 문자 집합 문제: 일반적인 Base64 변환기가 한국어를 손상시키는 이유는?

브라우저 콘솔에서 `btoa('Kůň')` 함수를 사용하여 “Kůň”이라는 단어를 인코딩하려고 시도했다면, 아마도 *String contains characters outside of the Latin1 range.* 라는 오류를 받았을 것입니다.

Base64는 원래 7비트 ASCII 문자를 위해 설계되었습니다. 그러나 한국어, 이모지 및 기타 특수 기호(UTF-8)는 메모리에서 더 많은 바이트(멀티바이트 문자)를 차지합니다.

- 문자 `a` = 1바이트.
- 문자 `ř` = 2바이트.
- 이모지 🚀 = 4바이트.

저희 도구는 이 문제를 해결합니다. Base64 인코딩 전에 텍스트를 올바르게 UTF-8 바이트 시퀀스로 변환합니다. 덕분에 JSON 객체, 한국어 텍스트 및 현대적인 기호도 데이터 손상 위험 없이 안전하게 인코딩할 수 있습니다.

## Base64 텍스트 인코딩은 어디에 사용되나요?

Base64 이미지가 주로 CSS/HTML에 포함되는 데 사용되는 반면, 텍스트 Base64는 백엔드 시스템에서 완전히 다른 용도로 사용됩니다.

### 1\. HTTP Basic 인증

API에 로그인할 때 헤더는 종종 다음과 같이 표시됩니다. `Authorization: Basic 7IKs7Jqp7J6Q66qFOuu5hOuwgOuyiO2YuA==` 이 코드 뒤에는 `사용자명:비밀번호` 형식으로 간단히 결합된 사용자명과 비밀번호가 숨겨져 있습니다. 저희 도구를 사용하면 이러한 헤더를 쉽게 생성하거나 확인할 수 있습니다.

### 2\. JSON Web Tokens (JWT)

최신 웹 애플리케이션은 로그인에 JWT를 사용합니다. 이러한 토큰은 점으로 구분된 세 개의 긴 문자열처럼 보입니다. 데이터 부분(Payload)은 Base64로 인코딩된 일반 JSON 객체입니다.

- **팁:** JWT 토큰의 중간 부분을 여기에 붙여넣고 디코딩해 보세요. 앱이 사용자에게 대해 어떤 데이터를 기록하는지 정확히 확인할 수 있습니다(예: 사용자 ID, 만료).

### 3\. 구성 파일 (Kubernetes Secrets)

Kubernetes와 같은 플랫폼은 Base64 형식으로 구성 YAML 파일에 비밀 정보(Secrets)를 저장합니다. 이것은 암호화가 아니라, 바이너리 데이터나 문제가 있는 문자(줄 바꿈, 따옴표)가 포함된 텍스트를 텍스트 파일에 저장하는 방법입니다.

## ”URL 안전 Base64 인코딩”이란 무엇이며 왜 중요한가요?

표준 Base64 알파벳에는 `+`(더하기)와 `/`(슬래시) 문자가 포함됩니다. 이 두 문자는 URL 주소에서 특별한 의미를 가집니다.

- `/`는 디렉터리를 구분합니다.
- `+`는 종종 공백으로 해석됩니다.

URL 매개변수(예: `site.com?token=ab/cd+ef`)에서 표준 Base64를 전송하면 서버가 데이터를 잘못 해석할 수 있습니다.

**해결책 (URL 안전 모드):** 저희 스위치는 다음 변경 사항을 수행하는 **Base64URL** (RFC 4648에 따름) 변형을 활성화합니다.

- `+`는 `-`(하이픈)으로 변경됩니다.
- `/`는 `_`(밑줄)로 변경됩니다.
- 끝에 URL에서 필요 없는 `=` (패딩) 문자가 제거됩니다.

---

## 오해: Base64는 암호화가 아닙니다!

초보자들이 흔히 혼동하는 근본적인 차이를 이해하는 것이 중요합니다.

1. **인코딩 (Encoding - Base64):** 데이터를 전송하는 데 사용됩니다. 여정 중에 깨지지 않도록 물건을 가방에 포장하는 것과 같습니다. 가방을 찾은 사람은 누구나 가방을 열고(디코딩) 내용을 볼 수 있습니다. **이는 비밀 데이터에 안전하지 않습니다.**
2. **암호화 (Encryption - AES, RSA):** 키로 데이터를 잠급니다. 키 없이는 내용에 접근할 수 없습니다.
3. **해싱 (Hashing - SHA, MD5):** 단방향 프로세스입니다 (예: 비밀번호 저장용). 결과에서 원본 텍스트를 얻을 수 없습니다.

*비밀번호나 민감한 정보를 보내야 하는 경우, Base64만으로는 부족합니다. 전송을 암호화하는 HTTPS (SSL/TLS)를 사용해야 합니다.*

---

## 자주 묻는 질문 (FAQ)

### 문자열 끝에 있는 "=" 문자는 무엇을 의미하나요?

이것은 "패딩"이라고 불립니다. Base64는 3개 문자 그룹으로 데이터를 인코딩하기 때문에, 원본 텍스트의 길이가 3으로 나누어 떨어지지 않을 수 있습니다. \`=\` 문자는 디코더가 끝에 몇 비트를 무시해야 하는지 알 수 있도록 끝에 추가됩니다.

### 디코딩된 텍스트가 "깨진 글자"처럼 보이는 이유는 무엇인가요?

아마도 텍스트가 아닌 데이터를 디코딩하려 하기 때문일 것입니다. Base64 문자열이 압축 파일(ZIP), 이미지 또는 암호화된 데이터를 나타내는 경우, 텍스트(UTF-8)로 변환하는 것은 의미가 없습니다. 데이터의 출처를 확인해 보세요.

### 이 도구는 오프라인에서 작동하나요?

네. 모든 변환 로직은 JavaScript로 작성되었으며 브라우저에서 직접 실행됩니다. 페이지가 로드되면 인터넷 연결을 끊어도 도구는 계속 작동합니다. 귀하의 데이터는 어디로도 전송되지 않습니다.

## Other languages

- Čeština (cs): [Base64 Encoder a Decoder](https://acrafto.com/cs/base64-decoder-encoder/) ([Markdown](https://acrafto.com/cs/base64-decoder-encoder/index.md))
- Slovenčina (sk): [Base64 kódovač a dekódovač](https://acrafto.com/sk/base64-kodovac-dekodovac-online/) ([Markdown](https://acrafto.com/sk/base64-kodovac-dekodovac-online/index.md))
- English (en): [Base64 Encoder and Decoder](https://acrafto.com/en/base64-encoder-decoder/) ([Markdown](https://acrafto.com/en/base64-encoder-decoder/index.md))
- Deutsch (de): [Base64 Encoder und Decoder](https://acrafto.com/de/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/base64-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur Base64](https://acrafto.com/fr/encodeur-decodeur-base64/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-base64/index.md))
- Español (es): [Codificador y decodificador Base64](https://acrafto.com/es/codificador-base64-decodificador-online/) ([Markdown](https://acrafto.com/es/codificador-base64-decodificador-online/index.md))
- Italiano (it): [Encoder e decoder Base64](https://acrafto.com/it/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/it/encoder-decoder-base64-online/index.md))
- Português (pt): [Codificador e decodificador Base64](https://acrafto.com/pt/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/pt/encoder-decoder-base64-online/index.md))
- Nederlands (nl): [Base64 encoder en decoder](https://acrafto.com/nl/base64-encoder-decoder/) ([Markdown](https://acrafto.com/nl/base64-encoder-decoder/index.md))
- Polski (pl): [Koder i dekoder Base64](https://acrafto.com/pl/koder-dekoder-base64-online/) ([Markdown](https://acrafto.com/pl/koder-dekoder-base64-online/index.md))
- Română (ro): [Base64 encoder și decoder](https://acrafto.com/ro/codor-decodor-base64/) ([Markdown](https://acrafto.com/ro/codor-decodor-base64/index.md))
- Magyar (hu): [Base64 kódoló és dekódoló](https://acrafto.com/hu/base64-kodolo-dekodolo-online/) ([Markdown](https://acrafto.com/hu/base64-kodolo-dekodolo-online/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση Base64](https://acrafto.com/el/base64-encoder-decoder/) ([Markdown](https://acrafto.com/el/base64-encoder-decoder/index.md))
- Български (bg): [Base64 енкодер и декодер](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/) ([Markdown](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/index.md))
- Hrvatski (hr): [Base64 koder i dekoder](https://acrafto.com/hr/base64-koder-dekoder/) ([Markdown](https://acrafto.com/hr/base64-koder-dekoder/index.md))
- Slovenščina (sl): [Base64 kodirnik in dekodirnik](https://acrafto.com/sl/base64-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/base64-kodirnik-dekodirnik/index.md))
- Eesti (et): [Base64 kodeerija ja dekodeerija](https://acrafto.com/et/base64-teisendaja/) ([Markdown](https://acrafto.com/et/base64-teisendaja/index.md))
- Latviešu (lv): [Base64 kodētājs un dekodētājs](https://acrafto.com/lv/base64-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/base64-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [Base64 koduotuvas ir dekoduotuvas](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [Base64 encode och decode](https://acrafto.com/sv/base64-kodare-avkodare-online/) ([Markdown](https://acrafto.com/sv/base64-kodare-avkodare-online/index.md))
- Dansk (da): [Base64 encoder og dekoder](https://acrafto.com/da/base64-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/base64-encoder-dekoder-online/index.md))
- Suomi (fi): [Base64-kooderi ja -dekooderi](https://acrafto.com/fi/base64-kooderi-dekooderi/) ([Markdown](https://acrafto.com/fi/base64-kooderi-dekooderi/index.md))
- Norsk (no): [Base64-enkoder og -dekoder](https://acrafto.com/no/base64-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/base64-enkoder-dekoder/index.md))
- Українська (uk): [Base64 кодер і декодер](https://acrafto.com/uk/base64-koder-dekoder-onlajn/) ([Markdown](https://acrafto.com/uk/base64-koder-dekoder-onlajn/index.md))
- Русский (ru): [Base64 кодировщик и декодировщик](https://acrafto.com/ru/base64-koder-dekoder/) ([Markdown](https://acrafto.com/ru/base64-koder-dekoder/index.md))
- Српски (sr): [Base64 enkoder i dekoder](https://acrafto.com/sr/base64-enkoder-dekoder-online/) ([Markdown](https://acrafto.com/sr/base64-enkoder-dekoder-online/index.md))
- Македонски (mk): [Base64 енкодер и декодер](https://acrafto.com/mk/base64-converter/) ([Markdown](https://acrafto.com/mk/base64-converter/index.md))
- Bosanski (bs): [Base64 koder i dekoder](https://acrafto.com/bs/base64-koder-dekoder/) ([Markdown](https://acrafto.com/bs/base64-koder-dekoder/index.md))
- Shqip (sq): [Base64 kodues dhe dekodues](https://acrafto.com/sq/kodues-dekodues-base64-online/) ([Markdown](https://acrafto.com/sq/kodues-dekodues-base64-online/index.md))
- Türkçe (tr): [Base64 kodlayıcı ve çözücü](https://acrafto.com/tr/base64-kodlayici-cozucu-online/) ([Markdown](https://acrafto.com/tr/base64-kodlayici-cozucu-online/index.md))
- 日本語 (ja): [Base64エンコード・デコード](https://acrafto.com/ja/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ja/base64-encoder-decoder/index.md))
- العربية (ar): [ترميز وفك ترميز Base64](https://acrafto.com/ar/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ar/base64-encoder-decoder/index.md))
- हिन्दी (hi): [Base64 एन्कोडर और डिकोडर](https://acrafto.com/hi/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/base64-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [Base64 encode dan decode](https://acrafto.com/id/konverter-base64-online/) ([Markdown](https://acrafto.com/id/konverter-base64-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã Base64](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/) ([Markdown](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/index.md))
- ไทย (th): [เข้ารหัสและถอดรหัส Base64](https://acrafto.com/th/base64-encoder-decoder/) ([Markdown](https://acrafto.com/th/base64-encoder-decoder/index.md))
- עברית (he): [קידוד ופענוח Base64](https://acrafto.com/he/base64-encoder-decoder/) ([Markdown](https://acrafto.com/he/base64-encoder-decoder/index.md))
