UltKit

JSON Base64 변환

따옴표, 중괄호, 줄바꿈 때문에 문제가 생기는 환경 변수, YAML 필드, API 본문에도 그대로 들어가도록 JSON 파일을 한 줄짜리 Base64 텍스트로 바꿉니다. 디코딩하면 정확히 같은 바이트가 돌아옵니다.

데이터 변환

또는 CSV, TSV, TXT … 파일을 여기에 끌어다 놓으세요 ·

파일당 최대 95 MB· 최대 20개 파일· 30분 뒤 삭제

출력

파일은 UltKit 서버에서 처리되며 30분 뒤 삭제됩니다.

사용 방법

  1. 1

    JSON 파일 업로드

    서비스 계정 키나 설정 파일 같은 .json, .jsonl, .ndjson 파일을 추가하십시오. 한 번에 20개, 파일당 95 MB까지 가능합니다.

  2. 2

    접두사 여부 결정

    기본값은 일반 Base64입니다. 텍스트가 data: URL을 기대하는 HTML이나 CSS 속성에 들어갈 때만 고급 설정에서 Data URI 접두사를 켜십시오.

  3. 3

    인코딩하고 복사

    Base64 텍스트로 변환을 누르고 결과를 받아 시크릿 저장소, 매니페스트, 요청 본문에 문자열을 붙여 넣으십시오.

JSON을 Base64로 인코딩해도 데이터는 바뀌지 않습니다. 중괄호, 따옴표, 줄바꿈이 깨지는 곳을 통과할 수 있도록 일반 영문자와 숫자로 다시 포장할 뿐입니다.

JSON 파일을 Base64로 인코딩하는 이유

가장 흔한 경우는 인증 정보 파일입니다. 클라우드 제공업체는 서비스 계정 키를 JSON 파일로 주는데, CI 시스템이나 호스팅 대시보드, 컨테이너 플랫폼은 시크릿용으로 한 줄 텍스트 필드만 제공합니다. JSON을 그대로 붙여 넣으면 첫 줄바꿈이나 이스케이프되지 않은 첫 따옴표에서 깨집니다. Base64로 인코딩하면 같은 키가 끊김 없는 문자열 하나가 되고, 애플리케이션이 시작할 때 이를 디코딩합니다.

Base64는 원래 이메일에서 나왔습니다. 1996년 RFC 2045로 정의된 MIME은 7비트 텍스트만 전달하는 메일 서버를 첨부 파일이 통과할 수 있도록 Base64를 썼습니다. 이후 2006년 RFC 4648에서 문자 집합이 따로 표준화되었습니다. 대가는 용량으로, 3바이트마다 4글자가 됩니다. 이미지와 다른 바이너리 파일은 이미지 Base64 변환이 같은 인코딩을 하고 data URI도 맞춰 줍니다. 받는 도구가 Base64 필드 대신 YAML을 읽는다면 JSON YAML 변환만으로 충분할 수 있습니다.

JSON Base64 변환 예시

압축된 JSON {"env":"prod","retries":3}와 그 Base64 인코딩
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Base64로 인코딩한 JSON을 요구하는 곳

JSON을 Base64로만 받는 곳
기관요구 사항출처
Kubernetes Secretdata 아래의 모든 값은 Base64여야 하므로, JSON 키 파일을 마운트하려면 먼저 인코딩해야 합니다.kubernetes.io
GitHub REST API파일 내용 생성·업데이트 엔드포인트는 .json 파일을 포함한 파일을 content에 Base64로 넣어야 합니다.docs.github.com
JSON 웹 토큰 (RFC 7519)JSON 헤더와 클레임을 각각 base64url로 인코딩해 점으로 이어 붙입니다.—
이메일 첨부 파일 (MIME).json 첨부 파일은 텍스트 전용 메일 서버를 통과하도록 Base64 전송 인코딩으로 보냅니다.—
Base64Base 64 인코딩 · RFC 4648 인코딩
A–Z, a–z, 0–9, +, / 등 안전한 64개 문자와 패딩용 =으로 어떤 바이트든 표현하는 방식입니다. 입력 3바이트가 출력 4글자가 되므로 텍스트는 파일보다 약 3분의 1 길어집니다. 되돌릴 수 있고 키가 없으므로 보안 수단이 아니라 전송용 형식입니다.

JSON과 Base64 형식 정보

JSON

JavaScript 객체 표기법(JSON)

JSON은 구조화된 데이터를 위한 가벼운 텍스트 형식으로, 2000년대 초 Douglas Crockford가 널리 알렸고 RFC 8259와 ECMA-404로 표준화되었습니다. 객체, 배열, 문자열, 숫자, 불리언, null을 간단하고 읽기 쉬운 문법으로 표현합니다. 거의 모든 프로그래밍 언어에서 웹 API, 설정 파일, 앱 간 데이터 교환의 기본 형식으로 쓰입니다. 주석, 날짜, 스키마가 기본으로 들어 있지 않고, 깊게 중첩된 큰 파일은 뷰어 없이 읽기 어렵습니다.

압축 방식
–
투명도
–
애니메이션
–
도입 연도
2001 · Douglas Crockford
JSON 변환

BASE64

Base64 인코딩 텍스트

Base64는 RFC 4648에 정의된 인코딩 방식으로, 어떤 바이너리 데이터든 안전한 텍스트 문자 64종으로 이루어진 문자열로 바꿉니다. HTML과 CSS에 이미지를 data URI로 넣거나, 이메일에 파일을 첨부하거나, JSON이나 XML로 바이너리 데이터를 보낼 때 쓰입니다. 인코딩은 완전히 되돌릴 수 있지만 데이터가 약 33% 커집니다. Base64는 암호화가 아니며 보안 기능도 없어 누구나 디코딩할 수 있습니다.

압축 방식
무손실
투명도
–
애니메이션
–
도입 연도
–
BASE64 변환

CI 시크릿, Kubernetes 매니페스트, API의 content 필드, 헤더 값처럼 따옴표와 줄바꿈을 그대로 받을 수 없는 한 줄 문자열 필드에 구조화된 데이터를 실어 보내야 할 때 JSON을 Base64로 인코딩합니다.

JSON Base64 변환 자주 묻는 질문

Base64로 인코딩한 JSON은 암호화된 것입니까?

아닙니다. Base64는 인코딩일 뿐이며 누구나 명령 하나로 디코딩할 수 있습니다. Kubernetes 문서도 Secret은 Base64로 인코딩될 뿐 기본적으로 암호화되지 않은 채 저장된다고 경고합니다. 인코딩한 문자열도 원래 키와 똑같이 보호하십시오.

토큰이나 URL에는 Base64와 base64url 중 무엇이 필요합니까?

여기서 만드는 표준 Base64는 +와 /를 쓰고 =로 패딩합니다. JWT와 URL 매개변수는 RFC 4648의 base64url 문자 집합을 쓰는데, 이는 그 자리에 -와 _를 쓰고 보통 패딩을 생략합니다. 대상이 base64url을 요구한다면 이 세 문자를 바꾸십시오.

인코딩 전에 JSON을 압축(minify)해야 합니까?

대개 그렇습니다. 공백, 들여쓰기, 줄바꿈도 다른 바이트와 똑같고, 3바이트마다 출력 4글자가 됩니다. 보기 좋게 정렬된 설정 파일을 jq -c 등으로 먼저 압축하면 그만큼 인코딩 문자열이 짧아집니다.

문자열을 다시 JSON으로 디코딩하려면 어떻게 합니까?

macOS나 Linux에서는 base64 --decode를 실행하고, PowerShell에서는 [Convert]::FromBase64String을 쓰십시오. 브라우저에서는 atob 결과를 TextDecoder에 넘겨야 UTF-8 문자가 올바르게 돌아옵니다.

kubectl이 illegal base64 data 오류를 내는 이유는 무엇입니까?

Secret 매니페스트의 data 아래 값은 한 줄로 된 올바른 Base64여야 합니다. 이 오류는 대개 붙여 넣을 때 줄바꿈이 섞였거나 일반 JSON을 data 아래에 넣었다는 뜻입니다. 일반 값은 stringData 아래에 넣으면 Kubernetes가 대신 인코딩합니다.

인코딩하면 JSON 내용이 바뀝니까?

바뀌지 않습니다. Base64는 바이트를 텍스트로, 다시 바이트로 손실 없이 옮기므로 키, 값, 악센트가 있는 문자, 파일 앞의 바이트 순서 표시(BOM)까지 디코딩할 때 정확히 복원됩니다.