Sådan bruger du værktøjet
- Indsæt den streng, du vil kontrollere, i inputfeltet.
- Læs resultatet: Gyldig Base64 eller Ikke gyldig Base64, den genkendte variant (standard eller URL-sikker) og den afkodede størrelse.
- Hvis der står noget under Problemer, kan du bruge de angivne positioner til at finde ugyldige tegn, blanktegn eller fejlplaceret udfyldning.
- Se på den genkendte indholdstype under Indhold for at finde ud af, om dataene er tekst eller en fil som PNG, PDF eller ZIP.
Det gør Base64 gyldig
- Alfabet. Kun
A-Z,a-z,0-9og to tegn mere er tilladt:+og/i standard-Base64,-og_i Base64URL. En streng, der blander begge par, er som regel blevet beskadiget eller sat sammen fra to kilder. - Udfyldning. Tegnet
=må kun stå til sidst og højst to gange. Udfyldning midt i strengen betyder som regel, at to kodede værdier er blevet sat sammen. - Længde. Med udfyldning er længden et multiplum af 4. Uden udfyldning er alle længder gyldige undtagen 4n + 1: Ét overskydende tegn indeholder kun 6 bit, hvilket ikke er nok til en byte.
Strenge dekodere har en regel mere: De ubrugte lave bit i det sidste tegn skal være nul. Mange dekodere ignorerer de bit, men nogle, for eksempel base64.StdEncoding.Strict() i Go, afviser strengen.
Typiske fejl, og sådan retter du dem
| Problem | Typisk årsag | Løsning |
|---|---|---|
| Ugyldigt tegn | Anførselstegn, omvendte skråstreger eller procentkoder som %2B og %3D, der er kommet med, da værdien blev kopieret | Fjern de ekstra tegn, eller URL-afkod først |
| Mellemrum midt i strengen | + er blevet til mellemrum, da værdien blev sendt gennem en URL eller en formular | Sæt + ind igen, eller brug Base64URL til URL'er |
| Længde på 4n + 1 | Værdien er afkortet af en kolonnegrænse, en loglinje eller en ufuldstændig kopiering | Kopiér hele værdien igen |
| Udfyldning midt i strengen | To Base64-strenge, der er sat sammen | Del strengen op, og afkod hver del for sig |
| Linjeskift | Ombrydning til MIME eller PEM | Som regel harmløst; fjern dem, hvor der kræves én linje |
Gyldig betyder ikke meningsfuld
Base64 har hverken header eller kontrolsum, så gyldighed fortæller kun, at en streng kan afkodes. Mange almindelige ord består testen: Fire vilkårlige bogstaver udgør altid en gyldig gruppe. Derfor afkoder validatoren også dataene og viser deres størrelse og indholdstype. Læsbar tekst eller en kendt filsignatur som PNG, PDF eller ZIP er et godt tegn på, at strengen virkelig er Base64; en håndfuld tilfældige bytes er det ikke. Hvis du også vil teste andre kodninger, kan du prøve kodningsgenkendelsen.
Validering af Base64 i kode
// JavaScript: standard-Base64 med udfyldning (matcher også en tom streng)
/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/
# Python: udløs en fejl i stedet for at springe ugyldige tegn over
import base64, binascii
try:
base64.b64decode(s, validate=True)
except binascii.Error:
print('invalid')
Ofte stillede spørgsmål
Hvorfor bliver et almindeligt ord vist som gyldig Base64?
test afkodes for eksempel til tre bytes. Se på den genkendte indholdstype: Hvis resultatet hverken er læsbar tekst eller en kendt filtype, var inputtet sandsynligvis aldrig Base64.Er Base64 med mellemrum eller linjeskift gyldig?
MIME og PEM ombryder Base64 i linjer, og de fleste dekodere springer blanktegn over. JSON-felter, HTTP-headere, JWT'er og data URI'er forventer dog én ubrudt streng. Validatoren viser blanktegn for sig, så du selv kan afgøre, om det har betydning dér, hvor strengen skal bruges.
Er Base64 uden =-udfyldning gyldig?
=-tegn, indtil længden er et multiplum af 4, hvis et system afviser strengen. Strenge uden udfyldning på 4n + 1 tegn er aldrig gyldige.Hvordan tjekker jeg i JavaScript, om en streng er Base64?
atob() inde i try/catch. Bemærk, at atob() kaster en InvalidCharacterError ved ugyldigt input, men stiltiende accepterer blanktegn og manglende udfyldning, og at den ikke accepterer de URL-sikre tegn.