Så använder du verktyget
- Släpp en fil på uppladdningsytan eller klicka på den för att välja en fil från din enhet (upp till 100 MB).
- Välj format under Utdata: rå Base64 för API:er och konfigurationsfiler, eller en data URI för HTML och CSS.
- Markera Radbryt efter 76 tecken bara om mottagaren förväntar sig rader i MIME-stil, till exempel i brödtexten i ett e-postmeddelande.
- Kontrollera filnamnet, MIME-typen och storlekarna, och kopiera sedan resultatet eller ladda ned det som en .txt-fil.
Varför koda en fil som Base64?
Många format som för data mellan system klarar bara text. JSON, XML, YAML, HTML och e-posthuvuden kan inte innehålla godtyckliga byte, eftersom en fil kan innehålla nollbyte, ogiltiga teckensekvenser eller radslut som en textparser skulle ändra på. Base64 gör om varje grupp om tre byte i filen till fyra tecken ur en uppsättning på 64 bokstäver, siffror, + och /. På så sätt kan vilken fil som helst skickas som en vanlig sträng och avkodas tillbaka till exakt samma byte.
Priset är storleken: den kodade texten blir ungefär 33 % större än filen, och radbrytningar lägger till lite till. En fil på 3 MB blir ungefär 4 MB Base64.
Vanliga användningsområden
- JSON- och XML-API:er. Slutpunkter som inte tar emot multipart-uppladdningar via formulär förväntar sig ofta filen som en Base64-sträng i ett fält, med namn och typ i andra fält.
- E-postbilagor. MIME kodar bilagor i Base64 med rader på högst 76 tecken (RFC 2045). Med radbrytning påslagen får du samma layout.
- Konfiguration och hemligheter. Värdena under
datai en Kubernetes Secret är Base64, så ett TLS-certifikat, ett nyckellager eller en licensfil måste kodas innan det kan läggas in i manifestet. CI-system lagrar ofta binära hemligheter i miljövariabler på samma sätt. - Databaser och källkod. En liten binärfil, till exempel ett typsnitt, ett ljud eller testdata, kan lagras i en textkolumn eller en strängkonstant i stället för i en separat fil.
För bilder finns Bild till Base64, som även kan ändra storlek och ger färdiga kodsnuttar för HTML och CSS. Vill du göra om Base64 till en fil igen använder du Base64 till fil.
Rå Base64 eller data URI?
Rå Base64 är bara de kodade bytena. Det är vad API:er, Kubernetes, databaser och de flesta programbibliotek förväntar sig, oftast tillsammans med ett separat fält för filnamn eller innehållstyp.
En data URI lägger till ett prefix med MIME-typen, till exempel data:application/pdf;base64,, så att webbläsaren kan använda hela strängen som en URL i src, href eller CSS-funktionen url(). Skicka inte med prefixet till ett API som vill ha ren Base64, eftersom många avkodare då avvisar värdet. Vill du ange MIME-typen själv eller använda procentkodning kan du prova Data URI-generatorn.
Låt radbrytning vara avstängd för JSON, YAML och källkod. En JSON-sträng får inte innehålla råa radbrytningar, och radbrutna värden i YAML går lätt sönder.
Koda en fil på kommandoraden
# Linux (GNU coreutils): -w 0 stänger av standardradbrytningen efter 76 tecken
base64 -w 0 report.docx > report.txt
# macOS
base64 -i report.docx -o report.txt
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))
# Kubernetes kodar filen åt dig
kubectl create secret generic app-cert --from-file=tls.crt
Vanliga frågor
Finns det någon gräns för filstorleken?
Filer på upp till 100 MB kan kodas. Utdatan blir ungefär en tredjedel större, så en fil på 100 MB ger runt 133 MB text. Att visa så mycket text kan göra sidan långsam, så för stora filer bör du använda Ladda ned i stället för att kopiera från utdatafältet.
Laddas mina filer upp till en server?
Nej. Filen läses och kodas av JavaScript i din webbläsare och inget skickas över nätverket, så certifikat, nycklar och privata dokument stannar på din enhet.
Komprimerar eller krypterar Base64 filen?
Inget av det. Base64 gör datan ungefär 33 % större, och vem som helst kan avkoda den. Om filen måste hållas konfidentiell ska du kryptera den före kodningen. Om storleken spelar roll ska du komprimera den först, till exempel som ett ZIP- eller gzip-arkiv.
Varför innehåller utdatan radbrytningar?
Alternativet Radbryt efter 76 tecken är markerat. Det motsvarar MIME-formatet som används i e-post, men de flesta API:er, JSON-dokument och Kubernetes-manifest förväntar sig en enda obruten rad, så avmarkera alternativet i de fallen.