Jak używać
- Wklej ciąg Base64 lub pełny data URI w pole wejściowe. Spacje i podziały wierszy nie mają znaczenia.
- Sprawdź wykryty typ i rozmiar pliku. Obrazy, pliki PDF, audio, wideo i tekst są wyświetlane w podglądzie.
- Pobierz plik. Zostanie zapisany z nazwą i rozszerzeniem odpowiadającymi wykrytemu typowi.
Jak wykrywany jest typ pliku
Tekst Base64 przenosi bajty, a nie nazwę pliku. Jeśli nie wklejasz data URI z typem MIME, nic w ciągu nie mówi, czy zawiera on plik PDF, archiwum ZIP, czy dźwięk. Dlatego narzędzie dekoduje dane i sprawdza kilka pierwszych bajtów, czyli sygnaturę pliku, tzw. „magiczne bajty”, które większość formatów umieszcza na samym początku. Ponieważ te bajty są stałe, tekst Base64 każdego formatu również zaczyna się w rozpoznawalny sposób:
| Format | Pierwsze bajty | Początek Base64 |
|---|---|---|
%PDF | JVBER | |
| PNG | 89 50 4E 47 | iVBORw0KGgo |
| JPEG | FF D8 FF | /9j/ |
| GIF | GIF8 | R0lGOD |
| ZIP (także DOCX, XLSX, JAR) | PK 03 04 | UEsDB |
| MP3 ze znacznikiem ID3 | ID3 | SUQz |
| WAV, WebP, AVI (RIFF) | RIFF | UklGR |
Gdy zdekodowany plik się nie otwiera
Dekodowanie Base64 jest bezstratne, więc uszkodzony plik prawie zawsze oznacza, że dane wejściowe nie były tym, czego się spodziewano. Sprawdź kolejno te przyczyny:
- Obcięte dane wejściowe. Pliki dziennika, terminale, komórki arkuszy kalkulacyjnych i komunikatory często ucinają długie ciągi. Brak tekstu na końcu daje zbyt krótki plik, którego większość formatów nie pozwala wtedy otworzyć. Jeśli znasz oryginalny rozmiar, porównaj go z rozmiarem po dekodowaniu.
- Dodatkowe znaki. Cudzysłowy, przecinki lub nazwa pola skopiowane razem z wartością albo sekwencje ucieczki z ciągu JSON, takie jak
\/i\n, nie należą do Base64. Kopiuj wyłącznie samą wartość. - Inne kodowanie lub wariant. Hex, Base32, Base85 lub własny alfabet mogą na pierwszy rzut oka wyglądać podobnie, ale po zdekodowaniu jako Base64 dają bezużyteczne dane. Wykrywacz kodowania próbuje każdego dekodera i pokazuje, który pasuje.
- To w ogóle nie jest plik. Jeśli wynik zostaje rozpoznany jako zwykły tekst, ciąg był zakodowanym w Base64 tekstem: JSON-em, tokenem lub kolejną warstwą Base64. Odczytaj go za pomocą dekodera Base64 i zdekoduj jeszcze raz, jeśli wynik znowu jest w Base64.
Walidator Base64 wskazuje nieprawidłowe znaki wraz z ich pozycjami i zgłasza problemy z dopełnieniem, co pomaga zlokalizować uszkodzony fragment.
Dekodowanie Base64 do pliku w kodzie
# Python
import base64
with open('output.bin', 'wb') as f:
f.write(base64.b64decode(data))
// Node.js
fs.writeFileSync('output.bin', Buffer.from(data, 'base64'));
# Linux
base64 -d input.txt > output.bin
# macOS
base64 -D -i input.txt -o output.bin
# Windows PowerShell
[IO.File]::WriteAllBytes("C:\files\output.bin", [Convert]::FromBase64String((Get-Content input.txt -Raw)))
Najczęściej zadawane pytania
Jakie typy plików mogą zostać wykryte?
Popularne formaty z wyraźną sygnaturą: PDF, archiwa ZIP, GZIP, 7z i RAR; obrazy PNG, JPEG, GIF, WebP i inne; audio MP3, WAV, OGG, FLAC i M4A; wideo MP4 i WebM; czcionki WOFF, WOFF2, TTF i OTF; WebAssembly i wiele innych. Rozpoznawane są także JSON, XML, HTML i zwykły tekst. Formatów bez sygnatury nie da się zidentyfikować, więc jeśli znasz rzeczywisty typ, zmień nazwę pobranego pliku.
Dlaczego plik Word lub Excel został wykryty jako ZIP?
Pliki DOCX, XLSX i PPTX, podobnie jak EPUB i JAR, są archiwami ZIP o określonej strukturze folderów i zaczynają się od tych samych magicznych bajtów co każdy plik ZIP. Zdekodowane bajty są poprawne: zmień rozszerzenie pobranego pliku na .docx, .xlsx lub inne potrzebne, a plik otworzy się normalnie.
Czy można wkleić data URI?
data:...;base64, albo tylko część Base64. W obu przypadkach typ jest sprawdzany na podstawie zdekodowanych bajtów.Dlaczego zdekodowany plik jest mniejszy niż tekst Base64?
Base64 używa 4 znaków na każde 3 bajty, więc plik ma około trzech czwartych długości tekstu. Jeśli jest dużo mniejszy niż oczekiwany plik, dane wejściowe zostały prawdopodobnie obcięte.
Czy dane są gdzieś wysyłane?
Nie. Dekodowanie, wykrywanie typu i podgląd działają w przeglądarce, a plik do pobrania jest tworzony na urządzeniu. Nic nie jest przesyłane na serwer.