Så använder du verktyget
- Klistra in Base64-strängen eller hela data URI:n i indatafältet. Mellanslag och radbrytningar spelar ingen roll.
- Kontrollera den identifierade filtypen och storleken. Bilder, PDF-filer, ljud, video och text visas i en förhandsvisning.
- Ladda ned filen. Den sparas med ett namn och en filändelse som motsvarar den identifierade typen.
Så identifieras filtypen
Base64-text innehåller byte, inte ett filnamn. Om du inte klistrar in en data URI med en MIME-typ finns det inget i strängen som säger om den innehåller en PDF, ett ZIP-arkiv eller ett ljud. Verktyget avkodar därför datan och undersöker de första bytena, alltså filsignaturen eller de "magiska byte" som de flesta format placerar allra först. Eftersom de bytena är fasta börjar även Base64-texten för varje format på ett igenkännbart sätt:
| Format | Inledande byte | Base64 börjar med |
|---|---|---|
%PDF | JVBER | |
| PNG | 89 50 4E 47 | iVBORw0KGgo |
| JPEG | FF D8 FF | /9j/ |
| GIF | GIF8 | R0lGOD |
| ZIP (även DOCX, XLSX, JAR) | PK 03 04 | UEsDB |
| MP3 med ID3-tagg | ID3 | SUQz |
| WAV, WebP, AVI (RIFF) | RIFF | UklGR |
När den avkodade filen inte går att öppna
Base64-avkodning är förlustfri, så en trasig fil betyder nästan alltid att indatan inte var vad du trodde. Kontrollera de här orsakerna i tur och ordning:
- Avkortad indata. Loggfiler, terminaler, kalkylbladsceller och chattappar kapar ofta långa strängar. Saknas text i slutet blir filen för kort, och de flesta format går då inte att öppna. Om du vet originalstorleken kan du jämföra den med den avkodade storleken.
- Extra tecken. Citattecken, kommatecken eller ett fältnamn som följt med när du kopierade värdet, eller escape-sekvenser som
\/och\nfrån en JSON-sträng, hör inte till Base64. Kopiera bara själva värdet. - En annan kodning eller variant. Hex, Base32, Base85 eller ett anpassat alfabet kan se likadant ut vid en snabb blick men blir skräp när det avkodas som Base64. Kodningsidentifieraren provar alla avkodare och visar vilken som passar.
- Inte en fil alls. Om resultatet identifieras som vanlig text var strängen Base64 av text: JSON, en token eller ytterligare ett lager Base64. Läs den med Base64-avkodaren, och avkoda en gång till om resultatet återigen är Base64.
Base64-valideraren listar ogiltiga tecken med deras positioner och rapporterar problem med utfyllnaden, vilket hjälper dig att hitta ett skadat avsnitt.
Avkoda Base64 till en fil i kod
# 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)))
Vanliga frågor
Vilka filtyper kan identifieras?
Vanliga format med en tydlig signatur: PDF samt arkiv i ZIP, GZIP, 7z och RAR; PNG, JPEG, GIF, WebP och andra bilder; ljud i MP3, WAV, OGG, FLAC och M4A; video i MP4 och WebM; typsnitt i WOFF, WOFF2, TTF och OTF; WebAssembly med mera. JSON, XML, HTML och vanlig text känns också igen. Format utan signatur kan inte identifieras, så om du vet den verkliga typen kan du byta namn på den nedladdade filen.
Varför identifierades min Word- eller Excel-fil som ZIP?
DOCX-, XLSX- och PPTX-filer är, precis som EPUB och JAR, ZIP-arkiv med en viss mappstruktur inuti, och de börjar med samma magiska byte som alla ZIP-filer. De avkodade bytena är korrekta: byt namn på nedladdningen till .docx, .xlsx eller den filändelse du behöver, så öppnas den som vanligt.
Kan jag klistra in en data URI?
data:...;base64,, eller bara Base64-delen. I båda fallen kontrolleras typen mot de avkodade bytena.Varför är den avkodade filen mindre än Base64-texten?
Base64 använder 4 tecken per 3 byte, så filen blir ungefär tre fjärdedelar så stor som texten. Om den är betydligt mindre än den fil du väntade dig har indatan troligen kapats.
Skickas min data någonstans?
Nej. Avkodning, typidentifiering och förhandsvisning körs i din webbläsare, och nedladdningen skapas på din enhet. Inget laddas upp.