Base64란?
- 이진 데이터를 64개의 인쇄 가능한 ASCII 문자로 나타내는 이진-텍스트 인코딩 방식입니다.
- 목적:
- 텍스트 기반 통신을 위해 설계된 매체를 통해 이진 데이터를 안전하게 전송합니다. (이메일, URL, XML 등)
- 이진 데이터를 압축된 텍스트 형식으로 저장합니다.
작동 방식:
- 인코딩:
- 이진 데이터는 24비트 그룹(3바이트)으로 나뉩니다.
- 각 그룹은 네 개의 6비트 블록으로 분할됩니다.
- 각 6비트 블록은 64문자 알파벳(문자, 숫자, ‘+’, ‘/’, 패딩용 ‘=’)의 해당 문자로 매핑됩니다.
- 디코딩:
- Base64 문자는 6비트 블록으로 다시 매핑됩니다.
- 블록이 결합되어 24비트 그룹을 형성합니다.
- 그룹이 이진 데이터로 다시 변환됩니다.
일반적인 사용:
- 이메일 첨부 파일
- 웹 페이지의 이미지 (데이터 URI)
- API 인증 (예: 기본 인증)
- JSON에서 이진 데이터 인코딩
- XML과 같은 텍스트 기반 형식에 이진 데이터 저장
온라인 도구:
- 인코딩: https://vip-url.com/base64-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%94%94%EC%BD%94%EB%94%A9/
- 디코딩: https://vip-url.com/base64-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%94%94%EC%BD%94%EB%94%A9/
프로그래밍 언어에서 인코딩/디코딩:
- 대부분의 언어에는 내장된 Base64 라이브러리 또는 함수가 있습니다.
- Python:
base64
모듈 - Java:
java.util.Base64
클래스 - JavaScript:
btoa()
및atob()
함수 - C#:
Convert.ToBase64String()
및Convert.FromBase64String()
메서드
- Python:
핵심 사항:
- Base64는 암호화가 아니라 인코딩입니다. 데이터 기밀성을 보호하지 않습니다.
- 데이터 크기를 약 33% 증가시킵니다.
- 텍스트 기반 환경에서 이진 데이터를 안전하고 효율적으로 전송하는 데 필수적입니다.
예제:
다음은 Base64로 인코딩된 문자열의 예입니다.
"Hello, world!"
이 문자열을 Base64로 인코딩하면 다음과 같은 결과가 나타납니다.
"SGVsbG8gV29ybGQ="
이 문자열을 Base64로 디코딩하면 원래 문자열로 복원됩니다.
"Hello, world!"
사용 방법:
Base64를 사용하여 이진 데이터를 인코딩하거나 디코딩하려면 다음을 수행하십시오.
- 인코딩하려는 데이터를 준비합니다.
- Base64 라이브러리 또는 함수를 가져옵니다.
- 인코딩 또는 디코딩을 수행합니다.
예를 들어, 다음 코드는 Python에서 Base64로 문자열을 인코딩합니다.
Python
import base64
data = "Hello, world!"
encoded = base64.b64encode(data.encode("utf-8"))
print(encoded)
이 코드는 다음 출력을 생성합니다.
SGVsbG8gV29ybGQ=
다음 코드는 Python에서 Base64로 인코딩된 문자열을 디코딩합니다.
Python
import base64
encoded = "SGVsbG8gV29ybGQ="
decoded = base64.b64decode(encoded)
print(decoded.decode("utf-8"))
이 코드는 다음 출력을 생성합니다.
Hello, world!