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

Base62 인코딩 및 디코딩

정수나 바이트 문자열을 간결하고 URL 안전한 Base62(0-9A-Za-z)로 상호 변환합니다. BigInt 지원과 GMP 알파벳 변형을 제공하며 모두 브라우저에서 처리됩니다.

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

이 도구에 대하여

Base62 도구는 숫자와 바이트 문자열을 간결한 62개 기호 알파벳 0-9A-Za-z로 인코딩하고 다시 디코딩합니다. Base62는 Base64가 사용하는 +, / 또는 = 문자 없이 URL 안전을 유지하기 때문에 짧은 ID, URL 슬러그, 단축 링크에 널리 쓰입니다. 모든 변환은 JavaScript BigInt를 사용해 브라우저에서 로컬로 실행되므로, 임의로 큰 값도 정확하게 처리되고 아무것도 업로드되지 않습니다.

정수 모드는 입력을 임의 정밀도 정수(10진수 또는 0x 접두사 hex)로 취급합니다. 인코딩은 62로 반복해서 나누며 alphabet[remainder]를 앞에 붙이고, 디코딩은 Σ alphabet.indexOf(ch)·62^position을 계산합니다. 바이트 모드는 입력 바이트(UTF-8 텍스트 또는 hex)를 하나의 빅엔디언 큰 정수로 취급하여 동일한 62진 변환을 적용하되, Bitcoin-Base58 방식으로 선행 0바이트도 보존합니다. 각 선행 0x00 바이트는 하나의 선행 '0' 문자가 되어 왕복 변환이 무손실이 됩니다.

표준 알파벳은 숫자, 대문자, 그다음 소문자 순으로 정렬됩니다(0-9A-Za-z). 일부 라이브러리 — 특히 GMP 기반 라이브러리 — 는 숫자, 소문자, 그다음 대문자 순(0-9a-zA-Z)으로 정렬하는데, 이는 같은 값에 대해 다른 출력을 만듭니다. 알파벳 토글로 사용 중인 시스템에 맞출 수 있습니다. 방향, 정수 또는 바이트 모드, 바이트의 입력 형식, 알파벳 변형을 선택하세요.

자주 묻는 질문

정수 모드와 바이트 모드의 차이는 무엇인가요?
정수 모드는 단일 임의 정밀도 숫자(10진수 또는 0x-hex)를 Base62 문자열로 변환하고 다시 10진 정수로 되돌립니다. 바이트 모드는 바이트 시퀀스(UTF-8 텍스트 또는 hex)를 빅엔디언 큰 정수로 변환하며, 선행 0바이트를 선행 알파벳-0 문자로 보존하여 바이너리 데이터가 정확히 왕복 변환되도록 합니다.
왜 두 가지 알파벳이 있나요?
표준 알파벳은 0-9A-Za-z(대문자가 소문자보다 먼저)입니다. GMP 기반 라이브러리는 0-9a-zA-Z(소문자가 대문자보다 먼저)를 사용합니다. 같은 값이 각각 다르게 인코딩되므로, 토글로 다른 도구가 기대하는 정렬 방식과 호환할 수 있습니다.
얼마나 큰 숫자를 처리할 수 있나요?
크기에 제한이 없습니다. 이 도구는 JavaScript BigInt를 사용하므로 2^53 정밀도 한계가 없습니다. 임의 길이의 정수와 바이트 문자열을 정확히 인코딩하고 디코딩할 수 있으며, 이는 해시, UUID, 긴 식별자에 필수적입니다.
바이트 모드에서 선행 0은 어떻게 처리되나요?
각 선행 0x00 바이트는 하나의 선행 알파벳-0 문자(Base58의 선행 '1'과 유사)로 인코딩됩니다. 디코딩 시 각 선행 알파벳-0 문자가 하나의 0x00 바이트를 복원하므로, 인코딩 후 디코딩하면 정확한 원본 바이트 시퀀스가 반환됩니다.

더 많은 도구