파일 → Base64
파일 → Base64 / data URI · Base64 → 파일 복원 · 이미지 자동 미리보기
Base64 是怎么膨胀三分之一的
Base64 把每 3 个字节(24 位)切成 4 个 6 位,每个 6 位查表落成一个可打印字符(A–Z、a–z、0–9、+、/),于是二进制变成能塞进 JSON、XML、邮件与 HTML 属性的纯文本。字节数不是 3 的倍数时用 = 补位:余 1 字节补 ==、余 2 字节补 =。所以编码后长度恒为 4 × ⌈字节数 ÷ 3⌉——本页显示的膨胀率是实测字符数 ÷ 原始字节数,并与这个理论值逐字节核对,对不上会明确标出来。
Base64 不是加密,也不是压缩。它只是换字母表:任何人拿到都能一步还原,体积还涨约 1/3。敏感内容请用真正的加密(AES 等),需要变小请用压缩——两件事都不是本页在做的。
data URI 是「前缀 + Base64」。形如 data:image/png;base64,iVBOR…:data: 后面是 MIME 与可选参数(如 ;charset=utf-8),;base64 声明编码方式,逗号之后才是内容。把图片直接写进 HTML 的 src、把字体写进 CSS 用的就是它——代价是体积膨胀且无法被单独缓存。
大文件为什么分块读。编码按约 1MB 一块顺序读取,块长取 3 的整数倍(这样每块都能独立编码、直接拼接,不会在块边界多出补位符),每块编码完立即释放字节。结果是内存里只多出 Base64 文本本身;但文本仍要完整放进页面(约 1.33 倍),所以超过 20MB 请改用命令行工具。
자주 묻는 질문
안 올라가요. 읽기·인코딩·디코딩 전부 브라우저에서 끝나요—파일은 1 바이트도 기기 밖 안 나가고, 새로고침하면 지워지고, localStorage 에도 안 남아요. 다만 Base64 는 인코딩이지 암호가 아니에요—JSON 이랑 메일 이랑 HTML 에 싣기 좋게이진 데이터를 글자로 바꾸는 거라, 손에 넣은 사람 누구나 한 수로 되돌려요. 비밀은 AES 같은 진짜 암호 도구를 쓰세요. 그리고 부피가 3 분의 1쯤 불어나요—큰 파일 전달을 압축인 척하지 마세요.
한 파일 20MB 윗한이에요. 인코딩은 1MB 씩 토막 내어 읽고 각 블록 끝나면 바로 놓아 주기 때문에 파일을 메모리에 몇 겹으로 떠놓진 않는데, Base64 글자 자체는 페이지에 얄팍한 채로 다 올라가야 해서 (약 1.33 배) 브라우저 메모리 한도도 걸려요—그 이상은 명령줄로 가세요: Linux·macOS 는 base64 파일 > 출력.txt, Windows PowerShell 은 파일 바이트 대상 Convert 한 줄 부르기. 여러 개 고르면 하나씩 처리하고 목록에 줄별로 상태를 적어요.
세 가지 근거를 우선순위대로 판단해요: ①data URI 안 MIME (data:image/png;base64,… 는 형이 그냥 적혀 있어요); ②맨 앞 이진 서명 (PNG 는 89 50 4E 47, JPEG 는 FF D8 FF, PDF 는 %PDF, ZIP 는 PK 시작); ③글이 글처럼 보이면 .txt 로 내요. 셋 다 못 정하면 무조건 .bin 으로 하고 '내용으로 형을 짐작 못 해요' 라고 또렷이 적어요—확장자는 받는 이름 제안일 뿐이라 바이트는 안 건드리고, 알맞은 확장자로 고치면 그냥 열려요.
'부호 변환' 페이지는 글자 조각용 (붙여넣은 글자를 Base64 로, URL-safe 변형, 메꿈 제거) 이랑 외파일 빠른 복사용; 이 페이지는 파일용—여러 개 한꺼번 고르기·용량 큰 거 토막 읽기·원래 부피랑 부풀림 비율·맨 Base64 랑 data URI 두 모양, 거기다 Base64 에서 파일로 거꾸로 되돌리기 (형식 판단이랑 그림 미리보기 붙임). 글 한 토막은 부호 변환으로, 파일—특히 수십 KB 넘는 그림·PDF·압축파일—처리엔 이 페이지로 하세요.