Base64 인코더 / Base64 디코더 온라인

0 chars
0 chars

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 dXppdmF0ZWw6aGVzbG8= 이 코드 뒤에는 사용자명:비밀번호 형식으로 간단히 결합된 사용자명과 비밀번호가 숨겨져 있습니다. 저희 도구를 사용하면 이러한 헤더를 쉽게 생성하거나 확인할 수 있습니다.

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로 작성되었으며 브라우저에서 직접 실행됩니다. 페이지가 로드되면 인터넷 연결을 끊어도 도구는 계속 작동합니다. 귀하의 데이터는 어디로도 전송되지 않습니다.