Sådan bruger du værktøjet
- Træk en fil hen på uploadfeltet, eller klik på det for at vælge en fil fra din enhed (op til 100 MB).
- Vælg under Outputformat: Base64 giver rå Base64 til API'er og konfigurationsfiler, og Data URI giver en streng, der kan bruges direkte i HTML og CSS.
- Slå kun Ombryd linjer ved 76 tegn til, hvis modtageren forventer linjer i MIME-stil, for eksempel i brødteksten i en e-mail.
- Tjek filnavn, MIME-type og størrelser, og kopiér derefter resultatet, eller download det som en .txt-fil.
Hvorfor kode en fil som Base64?
Mange formater, der flytter data mellem systemer, kan kun indeholde tekst. JSON, XML, YAML, HTML og e-mailheadere kan ikke rumme vilkårlige bytes, fordi en fil kan indeholde nulbytes, ugyldige tegnsekvenser eller linjeskift, som en tekstparser ville ændre. Base64 omsætter hver gruppe på 3 bytes i filen til 4 tegn fra et sæt på 64 bogstaver, cifre, + og /, så enhver fil kan sendes som en almindelig streng og afkodes til nøjagtig de samme bytes igen.
Prisen er størrelsen: Den kodede tekst er ca. 33 % større end filen, og linjeskift lægger lidt mere til. En fil på 3 MB bliver til omkring 4 MB Base64.
Typiske anvendelser
- JSON- og XML-API'er. Endpoints, der ikke tager imod multipart-formularuploads, forventer ofte filen som en Base64-streng i ét felt og filens navn og type i andre felter.
- Vedhæftede filer i e-mails. MIME koder vedhæftninger i Base64 med linjer på højst 76 tegn (RFC 2045). Indstillingen Ombryd linjer ved 76 tegn giver præcis det samme layout.
- Konfiguration og hemmeligheder. Værdierne under
datai en Kubernetes Secret er Base64, så et TLS-certifikat, et keystore eller en licensfil skal kodes, før det kommer ind i manifestet. CI-systemer gemmer ofte binære hemmeligheder i miljøvariabler på samme måde. - Databaser og kildekode. En lille binær fil som en skrifttype, en lyd eller testdata kan gemmes i en tekstkolonne eller en strengkonstant i stedet for i en separat fil.
Til billeder kan Billede til Base64 også skalere og levere færdige HTML- og CSS-kodestykker. Vil du lave Base64 om til en fil igen, kan du bruge Base64 til fil.
Rå Base64 eller data URI?
Rå Base64 er kun de kodede bytes. Det er det, API'er, Kubernetes, databaser og de fleste programmeringsbiblioteker forventer, som regel sammen med et separat felt til filnavnet eller indholdstypen.
En data URI tilføjer et præfiks med MIME-typen, for eksempel data:application/pdf;base64,, så en browser kan bruge hele strengen som URL i src, href eller CSS-funktionen url(). Send ikke præfikset til et API, der beder om ren Base64; mange dekodere afviser det. Vil du selv angive MIME-typen eller bruge procentkodning, kan du prøve Data URI-generatoren.
Lad linjeombrydning være slået fra til JSON, YAML og kildekode. En JSON-streng må ikke indeholde rå linjeskift, og ombrudte værdier i YAML går let i stykker.
Kod en fil på kommandolinjen
# Linux (GNU coreutils): -w 0 slår den forvalgte ombrydning ved 76 tegn fra
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 koder filen for dig
kubectl create secret generic app-cert --from-file=tls.crt
Ofte stillede spørgsmål
Er der en grænse for filstørrelsen?
Du kan kode filer på op til 100 MB. Outputtet er ca. en tredjedel større, så en fil på 100 MB giver omkring 133 MB tekst. Når så meget tekst skal vises, kan siden blive langsom. Brug derfor Download i stedet for at kopiere fra outputfeltet, når filen er stor.
Bliver mine filer uploadet til en server?
Nej. Filen læses og kodes af JavaScript i din browser, og intet sendes over netværket, så certifikater, nøgler og private dokumenter bliver på din enhed.
Komprimerer eller krypterer Base64 filen?
Ingen af delene. Base64 gør dataene ca. 33 % større, og alle kan afkode dem. Skal filen holdes fortrolig, så kryptér den før kodningen; betyder størrelsen noget, så komprimér den først, for eksempel som et ZIP- eller gzip-arkiv.
Hvorfor indeholder outputtet linjeskift?
Ombryd linjer ved 76 tegn er slået til. Det svarer til det MIME-format, der bruges i e-mails, men de fleste API'er, JSON-dokumenter og Kubernetes-manifester forventer én sammenhængende linje, så slå indstillingen fra til dem.