Jak używać
- Wybierz „Koduj”, aby zamienić tekst na Base62, lub „Dekoduj”, aby zamienić Base62 z powrotem na tekst.
- Wybierz kolejność alfabetu zgodną z używanym systemem: 0-9 A-Z a-z (domyślnie) lub 0-9 a-z A-Z.
- Wpisz lub wklej dane wejściowe albo otwórz mały plik (do ok. 20 KB).
- Skopiuj wynik lub pobierz go jako plik.
Czym jest Base62?
Base62 korzysta z dziesięciu cyfr, 26 wielkich liter i 26 małych liter. To największy alfabet złożony wyłącznie z liter i cyfr, więc wynik nie wymaga kodowania znaków w adresach URL, nazwach plików, kluczach bazy danych ani identyfikatorach w kodzie. Każdy znak niesie ok. 5,95 bita, przez co wynik jest ok. 1,34 raza większy od danych wejściowych, czyli niemal tak zwarty jak Base64, ale bez znaków +, /, =, - i _.
Ponieważ 62 nie jest potęgą dwójki, to narzędzie traktuje całe wejście jako jedną dużą liczbę i zapisuje ją w systemie o podstawie 62, podobnie jak Base58 i Base36. Każdy wiodący bajt zerowy jest zapisywany jako wiodące 0, aby przetrwał konwersję w obie strony. Dane wejściowe są ograniczone do ok. 20 KB, ponieważ przy dużych danych obliczenia znacznie zwalniają.
Nie ma jednego standardu Base62
W przeciwieństwie do Base64 Base62 nie ma swojego dokumentu RFC, a implementacje różnią się w sposób, przez który ich wyniki są ze sobą niezgodne:
- Kolejność alfabetu. To narzędzie oferuje
0-9A-Za-z(domyślnie) oraz0-9a-zA-Z. Niektóre inne biblioteki umieszczają litery przed cyframi. - Wiodące zera. Niektóre implementacje zachowują jedno
0na każdy wiodący bajt zerowy, tak jak to narzędzie, inne je pomijają, a formaty o stałej długości dopełniają wynik do ustalonej szerokości. - Co jest kodowane. Wiele funkcji Base62 koduje liczbę całkowitą, np. identyfikator z bazy danych, a nie ciąg bajtów. Inne dzielą dane na bloki o stałym rozmiarze.
Jeśli ciąg z innego systemu dekoduje się tutaj do przypadkowych znaków, spróbuj drugiej opcji alfabetu. Jeśli nadal się nie udaje, ten system prawdopodobnie używa innej metody.
Gdzie używa się Base62
Serwisy skracające linki zamieniają automatycznie zwiększany identyfikator na krótki kod: siedem znaków Base62 pozwala zapisać ponad 3,5 biliona wartości. Sortowalne identyfikatory, takie jak KSUID, mają stałą 27-znakową postać Base62, a wiele usług stosuje Base62 w kluczach API i tokenach, ponieważ podwójne kliknięcie zaznacza cały ciąg i można go wkleić w dowolnym miejscu. Aby przekonwertować pojedynczą liczbę całkowitą, użyj konwertera systemów liczbowych albo kilku wierszy kodu:
// JavaScript: liczba całkowita (BigInt) na Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
let s = '';
do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
return s;
}
toBase62(123456789n); // '8M0kX'
Specyfikacja
| Alfabet | 0-9 A-Z a-z |
|---|---|
| Rozmiar wyniku | Ok. 134% (arytmetyka dużych liczb) |
| Dopełnienie | Brak |
| Standard | Brak formalnego standardu |
| Rozróżnia wielkość liter | Tak |
Przykłady
| Wejście (UTF-8) | Wyjście |
|---|---|
Hello, World! | 1wJfrzvdbtXUOlUjUf |
Base64.is | NWxjrFq4r3rv |
你好 | 19PqtKE1t |
Najczęściej zadawane pytania
Czy Base62 jest bezpieczny dla URL?
Dlaczego ciąg Base62 dekoduje się do niewłaściwego tekstu?
Implementacje Base62 różnią się kolejnością alfabetu i metodą. Przełącz alfabet między 0-9A-Za-z a 0-9a-zA-Z. Jeśli żaden nie działa, ciąg prawdopodobnie powstał z liczby całkowitej lub za pomocą innego algorytmu.
Czy Base62 rozróżnia wielkość liter?
Tak. Wielkie i małe litery oznaczają różne wartości, więc ciągu Base62 nigdy nie wolno zamieniać na same wielkie ani same małe litery.