Hopp til innhold

Base64 Enkoder Dekoder - Gratis Online Base64 Konverteringsverktøy

Gratis base64 enkoder dekoder verktøy. Konverter tekst til Base64 eller dekod Base64-strenger umiddelbart. Støtter standard og URL-sikker koding. Ingen pålogging nødvendig.

Base64 Koder/Avkoder

Konverter tekst til og fra Base64-koding

Lastekalkulator...
📚

Dokumentasjon

Hva er Base64-koding?

Base64 er en måte å gjøre alle typer data, inkludert binære data som bilder, om til ren tekst som bare består av bokstaver, sifre og noen få symboler. En Base64-koder konverterer data til dette tekstformatet. En Base64-dekoder gjør dem tilbake til de opprinnelige dataene. Programmer bruker Base64 til å overføre binære data trygt gjennom systemer, for eksempel e-post eller JSON, som forventer ren tekst.

Base64 bruker et alfabet med 64 tegn:

  • Store bokstaver A–Z (26 tegn)
  • Små bokstaver a–z (26 tegn)
  • Sifrene 0–9 (10 tegn)
  • To symboler, vanligvis + og / (2 tegn)

Noen systemer bruker også et likhetstegn (=) på slutten av resultatet som utfylling. Utfyllingen er ikke en del av alfabetet med 64 tegn; den fyller bare ut lengden.

Hvorfor Base64 finnes

Mange eldre tekstprotokoller, inkludert e-post (SMTP) og enkelte deler av HTTP, ble laget for å overføre 7-bits ASCII-tekst. De kan ødelegge rå binære byteverdier, for eksempel byteverdiene i et JPEG-bilde. Base64 unngår dette ved å representere hver byte med bare trygge, utskrivbare tegn. Derfor går e-postvedlegg, bilder som er innebygd i nettsider, og binære felt i JSON ofte gjennom Base64 først.

Base64 er verken komprimering eller kryptering. Kodet resultat er alltid større enn inndataene, og alle kan dekode det uten passord eller nøkkel.

Slik bruker du dette verktøyet

  1. Skriv eller lim inn tekst i inndatafeltet.
  2. Velg «Encode to Base64» for å konvertere tekst til Base64, eller «Decode from Base64» for å konvertere en Base64-streng tilbake til tekst.
  3. Slå på direktekonvertering for å få resultatet oppdatert automatisk mens du skriver.
  4. Kopier resultatet med kopieringsknappen.

Verktøyet leser og skriver standard Unicode-tekst, slik at aksenttegn, symboler og emoji kodes og dekodes riktig, ikke bare vanlige engelske bokstaver.

Slik fungerer Base64-koding

Base64 gjør hver 3 byte med inndata (24 biter) om til 4 tegn i resultatet (hvert med 6 biter), fordi 24 dividert med 6 er lik 4.

  1. Ta inndatabyteverdiene og skriv dem som binærtall.
  2. Gruppér bitene i blokker på 24 biter (3 byte).
  3. Del hver blokk på 24 biter opp i fire deler på 6 biter.
  4. Slå opp hvert tall på 6 biter (fra 0 til 63) i Base64-alfabetet, og skriv ned det tilsvarende tegnet.

Hvis inndatalengden ikke er et multiplum av 3, er den siste blokken kort. Koderen fyller den med nullbiter og legger deretter til =-tegn i resultatet, slik at resultatet fortsatt kommer ut i grupper på 4:

  • Én byte til overs gir 2 Base64-tegn pluss ==.
  • To byte til overs gir 3 Base64-tegn pluss ett =.

Eksempel på Base64-koding

Koding av ordet «Hello»:

  1. ASCII-verdier: 72, 101, 108, 108, 111
  2. Binært: 01001000 01100101 01101100 01101100 01101111
  3. De første 3 byteverdiene (24 biter) deles i fire grupper på 6 biter: 010010 000110 010101 101100, som er tallene 18, 6, 21, 44 → tegnene S, G, V, s.
  4. De resterende 2 byteverdiene (16 biter) deles i tre grupper på 6 biter, med 2 nullbiter lagt til på slutten: 011011 000110 111100, som er tallene 27, 6, 60 → tegnene b, G, 8.
  5. Fordi 2 byteverdier var til overs, legges ett = til på slutten.
  6. Resultat: SGVsbG8=

Dekoding utfører disse trinnene i motsatt rekkefølge: hvert tegn mappes tilbake til sitt tall på 6 biter, bitene settes sammen til en strøm, og strømmen leses ut igjen i byte på 8 biter.

Formel for kodet Base64-lengde

For en inndata på n byte er den kodede lengden i tegn:

encoded_length = 4 × ⌈n / 3⌉

der ⌈x⌉ betyr å runde opp til nærmeste hele tall. Denne formelen viser hvorfor Base64-resultatet alltid er omtrent en tredjedel større enn inndataene: 4 tegn i resultatet for hver 3 byte i inndataene er en økning på 33 %.

Hvor Base64 brukes

  • E-postvedlegg (MIME). E-post ble laget for tekst, så filvedlegg konverteres til Base64 før sending. Dermed blir den vedlagte filen omtrent 33 % større enn originalen.
  • Data-URI-er. Små bilder kan bygges direkte inn i HTML eller CSS som tekst, for eksempel data:image/png;base64,iVBORw0KGgo..., slik at en separat filforespørsel unngås. Dette fungerer best for små filer, siden store filer gjør siden unødvendig stor og ikke kan hurtigbufres separat.
  • API-er og JSON. JSON har ingen innebygd måte å lagre rå binære data på, så binære filer som sendes gjennom et JSON-API, er ofte Base64-kodet først.
  • HTTP Basic Authentication. Authorization-hodet koder et brukernavn og passord som Base64, for eksempel Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Dette er ikke sikkert i seg selv; innloggingsopplysningene kan leses av alle som fanger dem opp, så Basic Authentication bør bare brukes over HTTPS.
  • JSON Web Tokens (JWT). Hver av de tre delene i en JWT kodes med Base64URL, en variant som er trygg å plassere i en URL.
  • Lagring av binære data som tekst. Databaser eller konfigurasjonsfiler som bare godtar tekst, lagrer noen ganger binære data som en Base64-streng.

Base64 sammenlignet med andre kodingsformer

URL-sikker Base64 erstatter standardtegnene + og / med - og _, fordi + og / har en særskilt betydning i en URL. Den brukes for JWT-er, URL-spørringsparametere og filnavn. Dette verktøyet lager standard Base64-resultater; for å konvertere til URL-sikker form trenger man bare å bytte ut disse to tegnene.

Base32 bruker et alfabet med 32 tegn, slik at hvert tegn inneholder 5 biter i stedet for 6. Den konverterer hver 5 byte til 8 tegn, med en ekstra størrelse på 60 % (8 ÷ 5 = 1,6), sammenlignet med 33 % for Base64. Base32 brukes når resultatet må skrives inn for hånd eller leses over telefon, fordi den unngår bokstaver med blandet skrift og tegn som lett forveksles.

Heksadesimalt format bruker 16 tegn (0–9, A–F) og trenger 2 tegn per byte, slik at størrelsen dobles (100 % ekstra størrelse). Det er vanlig ved visning av hasher, farger og MAC-adresser, der lesbarhet er viktigere enn liten størrelse.

Når Base64 ikke bør brukes

Base64 øker størrelsen og CPU-bruken, så det egner seg dårlig for store filer som sendes over et nettverk; det er mindre og raskere å sende de rå binære dataene direkte. Det må aldri brukes for å skjule sensitive opplysninger som passord eller API-nøkler, siden dekoding ikke krever noen hemmelighet. For lagring av store filer er en databasekolonnetype for binære data eller en fillagringstjeneste vanligvis bedre enn en lang Base64-streng i et tekstfelt.

Vanlige feil

  • Å hoppe over UTF-8-konvertering. Koding av tekst med aksenttegn eller emoji uten først å konvertere den til UTF-8-byteverdier kan ødelegge resultatet.
  • Fjerning av utfylling. Noen systemer fjerner de avsluttende =-tegnene. De fleste dekodere fungerer fortsatt hvis strenglengden fylles ut igjen til et multiplum av 4, men ikke alle godtar dette, så det er tryggere å beholde utfyllingen.
  • Gjenværende linjeskift. Eldre MIME-baserte kodere setter inn et linjeskift for hver 76 tegn; de fleste moderne dekodere forventer én sammenhengende streng uten slike linjeskift.
  • Forveksling av varianter. Standard Base64 og URL-sikker Base64 bruker forskjellige tegn på de samme to plassene i alfabetet; dekoding med feil variant gir uleselige data eller en feil.

Ofte stilte spørsmål

Er Base64 en form for kryptering? Nei. Det er en reversibel tekstkoding, ikke kryptering. Alle kan dekode en Base64-streng umiddelbart uten passord. Bruk en krypteringsalgoritme som AES hvis dataene må holdes hemmelige.

Hvorfor gjør Base64 data større? Fordi den bruker ett helt tegn til å bære bare 6 biter, mens en rå byte inneholder 8 biter. Når 3 byteverdier (24 biter) konverteres til 4 tegn, blir resultatet 4/3, eller omtrent 33 %, større enn inndataene.

Kan Base64 kode bilder og andre binære filer? Ja. Alle binære filer, inkludert bilder, PDF-filer og lyd, kan Base64-kodes og dekodes tilbake byte for byte. Det brukes ofte for små bilder som er innebygd i HTML eller CSS, men egner seg dårlig for store filer.

Hva er forskjellen mellom Base64 og Base64URL? Base64URL bytter ut standardtegnene + og / med - og _, slik at resultatet kan plasseres i en URL eller et filnavn uten ekstra escaping. JWT-er bruker Base64URL av denne grunnen.

Hvorfor gir Base64-strengen min en «ugyldig»-feil under dekoding? De vanligste årsakene er tegn som ikke tilhører Base64-alfabetet, for eksempel - og _ som brukes av den URL-sikre varianten, eller en streng med lengde én større enn et multiplum av 4. Ingen gyldig Base64-streng har denne lengden. Dekoding mislykkes også når de dekodede byteverdiene ikke er gyldig UTF-8-tekst. Dette verktøyet ignorerer mellomrom og linjeskift i strengen, og dekoder fortsatt en streng der den avsluttende =-utfyllingen er fjernet.

Hvor kommer Base64 fra? Teknikken går tilbake til tidlige metoder for å sende binære data gjennom tekstbaserte postsystemer på 1980-tallet, og ble formelt standardisert som en del av MIME i RFC 2045 i 1996. Den gjeldende referansespesifikasjonen for Base64, Base32 og Base16 er RFC 4648.