Sådan bruger du værktøjet
- Skriv eller indsæt den tekst, der skal kodes, vælg Hex under Input som for at kode rå bytes, eller klik på Åbn fil for at kode en fil.
- Lad Tegnkodning stå på UTF-8, medmindre det modtagende system forventer et andet tegnsæt.
- Vælg indstillingerne: Behold varianten Standard til de fleste formål, slå Udfyldning fra, hvis modtageren ikke ønsker den, og vælg 76 (MIME) eller 64 (PEM) tegn under Linjeombrydning efter behov.
- Kopiér Base64-outputtet, eller download det som en fil.
Sådan fungerer Base64-kodning
Koderen læser inputtet tre bytes ad gangen. De 24 bit deles op i fire grupper på 6 bit, og hver 6-bit-værdi (0 til 63) udpeger ét tegn: A-Z for 0 til 25, a-z for 26 til 51, 0-9 for 52 til 61 og derefter + og /. Tre bytes ind giver fire tegn ud, og derfor er Base64 ca. 33 % større end de oprindelige data.
Tekst M a n
Bytes 77 97 110
Bit 01001101 01100001 01101110
6 bit 010011 010110 000101 101110
Indeks 19 22 5 46
Base64 T W F u
Udfyldning og outputlængde
Når inputlængden ikke er et multiplum af tre, er den sidste gruppe ufuldstændig. Én overskydende byte bliver til to tegn efterfulgt af ==; to overskydende bytes bliver til tre tegn og ét =. Output med udfyldning er derfor altid 4 × ceil(n / 3) tegn langt for n inputbytes.
Udfyldningen indeholder ingen data. JSON Web Tokens, URL-parametre og mange API'er udelader den, så slå udfyldning fra, når modtageren forventer output uden udfyldning. Til links og filnavne skal du vælge den URL-sikre variant eller bruge siden Base64URL, som begge erstatter + og / med - og _.
Linjeombrydning til MIME og PEM
Som standard er outputtet én lang linje, og det er netop det, JSON, data URI'er og HTTP-headere kræver. To formater forventer linjeskift:
- MIME, 76 tegn. Vedhæftede filer i e-mails, der sendes med
Content-Transfer-Encoding: base64, må ikke have linjer på mere end 76 tegn (RFC 2045). Denne indstilling afslutter linjerne med CRLF, sådan som MIME kræver. - PEM, 64 tegn. Certifikater og nøgler mellem linjerne
-----BEGINog-----ENDbruger linjer på 64 tegn (RFC 7468). Denne indstilling bruger LF som linjeafslutning.
Tegnsæt og filer
Base64 koder bytes, ikke bogstaver, så tekst konverteres først til bytes med et tegnsæt. Bogstavet ø fylder to bytes i UTF-8, men kun én byte i ISO-8859-1 eller Windows-1252, så den samme tekst giver forskellig Base64. UTF-8 er det rigtige valg til nettet, JSON og næsten alle moderne API'er; vælg kun GBK, Shift_JIS, Windows-1251 eller et andet tegnsæt for at matche et ældre system.
Filer kodes præcis, som de er gemt, uden nogen konvertering af tegnsæt. Til billeder med færdige HTML- og CSS-kodestykker kan du bruge Billede til Base64; til en data URI med den genkendte MIME-type kan du bruge Fil til Base64.
Specifikation
| Alfabet | A-Z a-z 0-9 + / |
|---|---|
| Outputstørrelse | 4 tegn pr. 3 bytes (ca. 133 %) |
| Udfyldning | Udfyldes med = til et multiplum af 4 tegn |
| Standard | RFC 4648 afsnit 4 |
| Skelner mellem store og små bogstaver | Ja |
Eksempler
| Input (UTF-8) | Output |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Ofte stillede spørgsmål
Hvorfor får jeg et andet Base64-output end med en anden koder?
echo tilføjer et; brug printf '%s' eller echo -n), et andet tegnsæt, Windows-linjeskift i teksten eller forskellige indstillinger for udfyldning, alfabet eller linjeombrydning. De samme bytes med de samme indstillinger giver altid det samme output.Hvordan Base64-koder jeg Unicode-tekst i JavaScript?
btoa() accepterer kun tegn op til U+00FF og kaster en fejl ved alt andet. Konvertér først strengen til UTF-8-bytes, for eksempel med btoa(String.fromCharCode(...new TextEncoder().encode(str))). I Node.js kan du bruge Buffer.from(str, 'utf8').toString('base64').Hvordan Base64-koder jeg på kommandolinjen?
printf '%s' 'your text' | base64 på Linux eller macOS. GNU base64 ombryder som standard outputtet ved 76 tegn (tilføj -w 0 for at få én linje), og openssl base64 ombryder ved 64 tegn (tilføj -A).Er Base64-kodning en form for kryptering?
Hvor meget større bliver mine data med Base64?
Hver gruppe på 3 bytes bliver til 4 tegn, rundet op til en hel gruppe, så outputtet er ca. 33 % større. MIME-linjeombrydning tilføjer yderligere to bytes (CRLF) pr. 76 tegn.