Base64 파일 인코더
Base64는 모든 바이너리 파일을 인쇄 가능한 ASCII 문자열로 바꿔, 텍스트만 다루도록 설계된 시스템을 통과할 수 있게 합니다. JSON, YAML, 이메일 본문, SMS, 채팅에 복사해 붙여넣는 경우가 여기에 해당합니다. 이 인코더는 PDF, 이미지, ZIP, 심지어 실행 파일까지 임의의 파일을 받아, data: URI나 API 페이로드, 설정 파일에 바로 넣을 수 있는 Base64 표현을 반환합니다.
파일을 인코딩하는 방법
-
1
인코더에 아무 파일이나 끌어다 놓기
모든 바이너리 형식이 작동합니다. 브라우저가 원시 바이트를 읽습니다.
-
2
바이트가 Base64로 인코딩됨
3바이트마다 `A-Z a-z 0-9 + /` 알파벳에서 가져온 4개의 ASCII 문자가 됩니다.
-
3
출력 형식 선택
일반 Base64, 브라우저가 보고한 MIME 타입(없으면 일반 대체값)이 포함된 `data:` URI, 또는 JSON 문자열에 안전한 형식 중에서 고릅니다.
-
4
텍스트로 복사하거나 내려받기
큰 파일은 `.txt`로 내려받고, 작은 파일은 클립보드로 복사하세요.
크기 오버헤드
Base64는 3바이트를 4문자로 부풀리기 때문에 저장 용량과 네트워크 비용이 33% 늘어납니다. = 패딩이 몇 바이트를 더 추가합니다. 대략적인 추정치는 다음과 같습니다.
| 입력 파일 크기 | Base64 텍스트 크기 |
|---|---|
| 1 KB | 1.33 KB |
| 100 KB | 133 KB |
| 1 MB | 1.33 MB |
| 10 MB | 13.3 MB |
큰 바이너리 파일을 HTML이나 JSON 안에 Base64로 삽입하면 페이지 로딩과 파서 메모리가 순식간에 불어납니다. 약 10 KB를 넘는 것은 배포 환경의 제약 때문에 어쩔 수 없을 때만 인라인으로 넣으세요.
자주 쓰이는 용도
- 데이터 URI, CSS나 HTML 안의 작은 인라인 이미지:
url("data:image/png;base64,iVBORw0KGgo..."). - 이메일 첨부, MIME 멀티파트 본문은 SMTP로 안전하게 전송하기 위해 첨부 파일을 Base64로 인코딩합니다.
- JSON 페이로드, 단일 요청 API를 위해 PDF나 ZIP을 JSON 필드 안에 삽입합니다.
- YAML/설정 파일, TLS 키나 작은 바이너리 데이터를 설정 파일 안에 담아 전달합니다.
변형과 패딩
RFC 4648 표준 Base64 알파벳은 A-Z, a-z, 0-9, +, /의 64개 기호로 구성됩니다. =는 알파벳의 일부가 아니라 패딩 문자입니다. URL 안전 출력(+를 -로, /를 _로 대체)이 필요하면 전용 토글을 사용하세요. 패딩은 기본으로 포함되며 끌 수 있습니다.
개인정보 안내
파일은 절대 기기를 벗어나지 않습니다. FileReader API가 브라우저 안에서 바이트를 읽고 JavaScript가 인코딩을 수행합니다. 민감한 PDF, 개인 키, 미공개 자산을 인코딩할 때 특히 중요합니다.
자주 묻는 질문
인코더는 50 MB 이하의 파일 하나만 받습니다. Base64 결과는 원본 파일보다 크고 브라우저 메모리에 유지되므로, 이 제한은 과도한 메모리 사용을 막아 줍니다.
URL이나 파일 이름에 적합한 알파벳이 필요할 때 사용하세요. URL 안전 Base64(RFC 4648 5절)는 +를 -로, /를 _로 바꿉니다. 끝의 =를 유지할지는 별도의 패딩 옵션으로 정합니다.
data: URI 출력에서만 중요합니다. data:image/png;base64,...는 디코딩된 바이트를 어떻게 표시할지 브라우저에 알려 줍니다. 일반 Base64나 JSON 삽입에서는 MIME 타입이 인코딩된 데이터의 일부가 아닙니다.
HTML에 data:application/pdf;base64,... URL을 넣을 수는 있지만, 최신 브라우저는 data: URL로의 최상위 탐색을 흔히 차단하며 다운로드 동작도 브라우저마다 안정적이지 않습니다. 값이 크면 URL, 메모리 또는 Content Security Policy 제한에 걸릴 수도 있습니다. 안정적으로 다운로드하려면 브라우저 코드에서 Blob 객체 URL을 만들거나 HTTPS로 호스팅된 파일에 연결하세요.
관련 도구
Base85 인코더 및 디코더
Adobe Ascii85(PostScript/PDF) 또는 Z85(ZeroMQ) 방식으로 Base85를 인코딩하고 디코딩하세요. 이진 데이터에서는 Base64보다 더 작습니다.
bcrypt 생성기
plaintext password에서 bcrypt hash를 생성합니다. cost factor 4부터 14까지 조정 가능하며 Laravel, Django, Node, PHP와 호환됩니다.
Base32 인코더 및 디코더
RFC 4648 알파벳으로 Base32 문자열을 인코딩하고 디코딩하세요. TOTP 시크릿, 대소문자를 구분하지 않는 토큰, 사람이 입력하는 식별자에 유용합니다.
AES 암호화 / 복호화
OpenSSL의 AES cipher로 낮은 위험의 텍스트를 암호화하고 복호화합니다. passphrase는 SHA-256으로 해시되며 Base64 출력은 IV와 암호문을 담습니다.
bcrypt 해시 생성기
bcrypt 해시를 생성하거나 평문 비밀번호를 기존 bcrypt 해시와 대조해 검증합니다. 생성과 검증을 한 도구에서 나란히 제공합니다.
A1Z26 암호 인코더
A1Z26 암호(A=1, B=2, ... Z=26)로 텍스트를 인코딩하거나 숫자열을 다시 글자로 디코딩합니다. 구분자도 사용자 지정할 수 있습니다.