UTILS.
100% 브라우저 내 실행
🔠

Ascii85 / Base85 인코딩 및 디코딩

표준 및 Adobe(<~ ~>) 변형을 지원하여 바이트를 Ascii85/Base85로 인코딩하고 다시 디코딩합니다. 모두 브라우저에서 처리됩니다.

— 여기에 결과가 표시됩니다 —

이 도구에 대하여

Ascii85 / Base85 도구는 바이너리 데이터를 Ascii85(Base85라고도 함)로 상호 변환합니다. Ascii85는 4바이트를 5개의 출력 가능한 문자로 압축하는 텍스트 인코딩으로, Base64보다 약 25% 더 간결합니다. PostScript와 PDF 스트림(Adobe 변형) 및 패치/diff 형식 내부에서 사용됩니다. 모든 처리는 TextEncoder/TextDecoder를 사용해 브라우저에서 로컬로 실행되며, 붙여넣은 내용은 어디에도 업로드되지 않습니다.

인코딩은 입력을 4바이트 빅엔디언 그룹으로 처리하고, 각 그룹을 32비트 부호 없는 정수로 읽은 뒤, 값을 85로 반복해서 나눈 나머지에 33을 더하여 다섯 자리를 출력합니다. 따라서 각 자리는 출력 가능한 범위인 '!'(33)부터 'u'(117)까지에 들어갑니다. 모두 0인 그룹은 단일 문자 'z'로 축약됩니다. n바이트(1~3)로 된 마지막 부분 그룹은 4바이트로 0을 채워 인코딩한 뒤, 마지막 4−n개의 출력 문자를 버려서 n+1개의 문자를 만듭니다. Adobe 변형은 결과를 '<~'와 '~>'로 감쌉니다.

디코딩은 이 과정을 역으로 수행합니다. 공백과 래퍼가 제거되고, 'z'는 4개의 0바이트로 확장되며, 5문자 그룹은 value = Σ (cᵢ−33)·85^(4−i)로 읽혀 4개의 빅엔디언 바이트로 기록됩니다. m개(2~5)의 문자로 된 마지막 부분 그룹은 'u'(값 84)로 채워지고 m−1바이트를 유지합니다. 방향, 표준 또는 Adobe 변형, 그리고 입력 바이트가 UTF-8 텍스트인지 hex인지를 선택하세요.

자주 묻는 질문

'z' 단축 표기는 무엇인가요?
4개의 0바이트(0x00000000)로 된 그룹은 '!!!!!'로 인코딩됩니다. Ascii85는 대신 압축 단축 표기로 이를 단일 문자 'z'로 출력합니다. 디코딩 시 'z'는 다시 4개의 0바이트로 확장되지만, 이는 그룹 경계에 나타날 때만 해당하며 5문자 그룹의 중간에서는 절대 그렇지 않습니다.
Ascii85는 Base64와 어떻게 다른가요?
Base64는 3바이트를 4문자로 인코딩(33% 오버헤드)하고, Ascii85는 4바이트를 5문자로 인코딩(25% 오버헤드)하므로 더 간결합니다. Base64는 64개 기호의 알파벳을 사용하는 반면, Ascii85는 '!'부터 'u'까지 85개의 출력 가능한 ASCII 기호를 사용합니다.
Adobe 변형은 무엇인가요?
PostScript와 PDF에서 사용되는 Adobe의 Ascii85는 페이로드를 '<~'와 '~>' 구분자 사이에 감쌉니다. 핵심 알고리즘은 동일합니다. Adobe 변형을 선택하면 인코딩 시 해당 마커를 추가하고 디코딩 시 제거하며, 표준 변형은 이를 생략합니다.
제 데이터가 어딘가로 업로드되나요?
아니요. 인코딩과 디코딩은 순수 JavaScript와 TextEncoder/TextDecoder를 사용해 전적으로 브라우저에서 이루어집니다. 서버로 전송되는 것은 없으므로 비공개 데이터나 바이너리 데이터를 안전하게 처리할 수 있습니다.

더 많은 도구