Command Palette

Search for a command to run...

Wie HTTP Basic Auth Header mit Base64 funktionieren

Wie HTTP Basic Auth Header mit Base64 funktionieren

T
Toolz Team
|Aug 31, 2026|15 min lesen
Bevorzugen Sie Toolz.dev bei Google

Teil der Sammlung Web-Tools

Basic Auth Generator

Verwandeln Sie einen Benutzernamen und ein Passwort in einen HTTP Basic Authentication Header, ein Base64-Token, Curl-Befehle und ein URL-Formular und dekodieren Sie vorhandene Basic-Auth-Token zurück.

Verwenden Sie die Basic Auth Generator

Jeder Entwickler, der eine API eines Drittanbieters integriert hat, hat die gleiche Wand getroffen: Die Dokumente sagen " Authentifizieren Sie sich mit Basic auth, " Sie fügen Ihren Schlüssel und Ihr Geheimnis in eine Anfrage ein und der Server antwortet mit einer Flachform 401 Unauthorized Und kein Hinweis darauf, warum. Neun von zehn Fällen wurde der Berechtigungsnachweis leicht falsch codiert, und es ist nichts im Fehler, um Ihnen das zu sagen Ich habe genug APIs über WordPress-Plugins und Laravel-Backends hinweg erstellt und verbraucht, um genau dafür peinlich viel Zeit verschwendet zu haben, also habe ich eine Basisauthenker auf Toolz.dev Das baut jedes Mal den Header richtig auf und dekodiert einen zurück, wenn Sie überprüfen müssen Dies ist die Anleitung dazu und zum Schema dahinter.

tl; dr: HTTP Basic Authentication sendet einen Benutzernamen und ein Passwort als base64(username:password) im Authorization Kopfzeile. The Toolz Basisauthenker Verwandeln Sie einen Benutzernamen und ein Passwort in den genauen Header, einen auslaufbereiten Curl-Befehl, einen Abruf-Snippet und das URL-Benutzerinfo-Formular und dekodieren Sie vorhandene Token zurück. Es kodiert über UTF-8, sodass Nicht-ASCII-Anmeldeinformationen erhalten bleiben, warnt, wenn der Benutzername einen Doppelpunkt enthält, und läuft vollständig clientseitig.

Was ist HTTP Basic Authentication?

Die HTTP Basic Authentication ist das einfachste Anmeldeinformationsschema, das das Web definiert. Es wird in angegeben RFC 7617, das auf dem allgemeinen HTTP-Authentifizierungsframework in steht RFC 7235. Die Idee ist minimal: Um zu beweisen, wer Sie sind, senden Sie eine Authorization Kopfzeile, deren Wert das Wort ist Basic„ein Leerzeichen und dann die Basis-64-Kodierung Ihres Benutzernamens und Passworts, verbunden durch einen einzigen Doppelpunkt.

Konkret, wenn Ihr Benutzername lautet admin Und Ihr Passwort ist secretDer Client bildet die Zeichenfolge admin:secretKodiert es als UTF-8-Bytes, base64 kodiert diese zu erhaltenden Bytes YWRtaW46c2VjcmV0und sendet:

Authorization: Basic YWRtaW46c2VjcmV0

Das ist das ganze Schema Es gibt keinen Handshake, keine Nonce, kein Hashing Seine Einfachheit ist genau der Grund, warum es überlebt hat: Es ist trivial, es an beiden Enden zu implementieren, und für interne Tools, private Register, Webhooks und unzählige APIs ist es immer noch der Standard Der Haken, und es ist ein großer, ist, dass die Kodierung völlig reversibel ist, was alles darüber prägt, wie man sie verwenden sollte.

Ist die Codierung von base64 dasselbe wie die Verschlüsselung?

Nein, und das ist das Wichtigste, was man über die Grundauthentifizierung verstehen sollte. Base64, definiert in RFC 4648, ist eine Transportkodierung Sein Zweck ist es, Binär - oder Textdaten mit einem sicheren Satz von 64 druckbaren Zeichen darzustellen, so dass es überlebt, durch Systeme gesendet zu werden, die Text erwarten Es ist keine Chiffre, es verwendet keinen Schlüssel, und es macht einen Schritt rückgängig Jeder, der sehen kann YWRtaW46c2VjcmV0 Dekodieren kann, zu admin:secret Sofort, was dieses Tool's im Dekodiermodus tut.

Die Konsequenz ist, dass die Basic-Authentifizierung für sich genommen null Vertraulichkeit bietet Die Anmeldeinformationen werden effektiv im Klartext gesendet, nur mit einer dünnen Verkleidung versehen. Deshalb lautet die einzige nicht verhandelbare Regel der Basic-Authentifizierung, dass sie immer nur über HTTPS übertragen werden dürfen. TLS verschlüsselt die gesamte Anfrage, einschließlich der Authorization Header, so dass die Basis64-Anmeldeinformationen während der Übertragung geschützt sind Senden Sie Basic-Auth über einfaches HTTP und Sie haben Ihr Passwort an jeden auf dem Netzwerkpfad veröffentlicht.

Ich arbeite an diesem Punkt, weil der Schritt base64 die Leute zu der Annahme verleitet, dass die Anmeldeinformationen auf sinnvolle Weise verschlüsselt werden. Das ist nicht der Fall. Behandeln Sie den base64-Token mit der gleichen Sorgfalt, mit der Sie das Rohpasswort behandeln würden, da er trivialerweise ineinander umgewandelt werden kann. Die Datenschutz Online-Tools Der Leitfaden behandelt, warum dieses Tool die Kodierung in Ihrem Browser und nicht auf einem Server durchführt, was bei einer Live-Anmeldung der springende Punkt ist.

Wie wird der Basic-Authentifizierungsheader Schritt für Schritt erstellt?

Die Konstruktion besteht aus vier kleinen Schritten, und wenn man einen von ihnen leicht falsch macht, entsteht ein Abschluss, der stillschweigend scheitert:

  1. Mit einem Doppelpunkt verbinden. Die Zeichenkette bilden username:password. Der Doppelpunkt ist der Trennzeichen.
  2. Als UTF-8 kodieren. Verwandeln Sie diese Zeichenfolge mit UTF-8 in Bytes. Dies ist für jedes Nicht-ASCII-Zeichen wichtig.
  3. Base64-kodieren Sie die Bytes. Wenden Sie die Standardbasis 64 an, um den Token zu produzieren.
  4. Präfix mit Basic drohen Der endgültige Header-Wert ist Basic Anschließend der Token.

der Generator Macht alle vier und übergibt Ihnen den fertigen Header, Außerdem erzeugt er die Formulare, die Sie tatsächlich in ein Terminal oder eine Codebasis einfügen: einen Curl-Befehl mit dem -u Flag, ein Curl-Befehl mit dem expliziten -H 'Authorization: Basic ...' Header, ein Abruf-Snippet, das bloße Token für sich und das URL-Benutzerinfo-Formular https://user:pass@host. Verschiedene Aufgaben wollen verschiedene Formen, und gerade das Zurücktippen der Basis64 per Hand schleicht sich Fehler ein.

Warum ist der Benutzername wichtiger als das Passwort?

Es gibt eine Asymmetrie im Schema, die die Leute ständig auf den Kopf stellt, und sie kommt direkt aus Schritt eins. Die Berechtigungsnachweise werden auf die aufgeteilt vorweg Doppelpunkt Das heißt der Benutzername kann keinen Doppelpunkt enthalten, denn der Server würde den ersten Doppelpunkt in deinem Benutzernamen als Grenze lesen und den Rest an das Passwortfeld übergeben, das Passwort kann im Gegensatz dazu beliebig viele Doppelpunkte enthalten, da alles nach dem ersten Doppelpunkt das Passwort ist.

RFC 7617 stellt dies direkt fest: die User-ID darf keinen Doppelpunkt enthalten, dies lässt sich leicht verletzen, ohne es zu merken, vor allem wenn der Benutzername selbst so etwas wie ein API-Schlüssel oder eine E-Mail-förmige Kennung ist, die zufällig einen Doppelpunkt enthält Der Generator wacht genau danach und warnt Sie, wenn der Benutzername einen Doppelpunkt enthält, denn die resultierende Anmeldeinformation wird mit der Aufteilung an der falschen Stelle dekodiert und erzeugt eine 401, die Ihnen keinen Hinweis auf die Ursache gibt.

Hier die Regel in einer Tabelle, denn es lohnt sich, eindeutig zu sein.

Feld Kann einen Doppelpunkt enthalten? Vernunft
Benutzername kein Der erste Doppelpunkt ist der Trennzeichen
Passwort ja Alles nach dem ersten Doppelpunkt ist das Passwort

Ich habe genau diesen Fehler in freier Wildbahn debuggt, wo ein Dienst API & quot; usernames" ausgegeben hat, der gelegentlich einen Doppelpunkt enthielt und die Integration bei den meisten Kunden funktionierte und bei einigen auf mysteriöse Weise fehlschlug Die Warnung von tool' hätte an diesem Nachmittag gespeichert.

Warum spielt die UTF-8-Kodierung eine Rolle?

Für einen All-ASCII-Benutzernamen und Passwort ist der Kodierungsschritt unsichtbar; jedes Zeichen ist ein Byte und base64 macht sein Ding In dem Moment, in dem ein Anmeldeinformationen einen akzentuierten Buchstaben, ein nicht-lateinisches Skript oder ein Emoji enthalten, wird die Bytekodierung entscheidend RFC 7617 empfiehlt UTF-8 genau, damit Client und Server sich auf die Bytes für diese Zeichen einigen.

Ein naiver Encoder, der davon ausgeht, dass ein Zeichen ein Byte ist oder der sich auf eine Browser-API mit altem Verhalten stützt, wird beschädigt café oder пароль In die falschen Bytes, und das von ihm erzeugte Basis64-Token wird nicht mit dem übereinstimmen, was ein konformer Server aus demselben Anmeldeinformationen berechnet hat Das Ergebnis ist ein weiteres stummes 401. Dieser Generator kodiert die Anmeldeinformationen über UTF-8 von Hand, also ein Passwort wie café:naïve Produziert genau die Bytes, die ein RFC 7617-Client senden würde, und die Dekodierseite kehrt es getreu umWenn Sie jemals einen Berechtigungsnachweis hatten, der für einen Teamkollegen und nicht für einen anderen funktionierte, ist ein nicht-ASCII-Zeichen, das inkonsistent kodiert ist, ein Hauptverdächtiger.

Wie dekodiere ich ein Basic auth-Token?

Da die Kodierung reversibel ist, ist die Überprüfung eines Berechtigungsnachweises so einfach wie die Erstellung eines Nachteils Basic , base64-decodieren, das Ergebnis als UTF-8 lesen, und auf dem ersten Doppelpunkt aufteilen Die Generator's Der Dekodiermodus tut dies: Fügen Sie ein vollständiges Authorization: Basic ... Linie, eine kahle Basic ... Wert, oder nur das Token, und es zeigt Ihnen den Benutzernamen und das Passwort, das es trägt.

Das ist wirklich nützlich, nicht nur eine Kuriosität Wenn man einen Arbeitsnachweis ausgehändigt bekommt und gebeten wird, ihn in einer neuen Umgebung wiederzugeben, sagt einem die Dekodierung genau, welchen Benutzernamen und welches Passwort er kodiert, damit man sie richtig einstellen kann Wenn eine Integration fehlschlägt, ist das Dekodieren des Tokens, das man tatsächlich sendet, und der Vergleich mit dem, was man beabsichtigt hat, oft die schnellste Möglichkeit, einen verirrten Raum, ein falsches Feld oder einen Doppelpunkt an der falschen Stelle zu erkennen Und es ist eine lebendige Erinnerung an den obigen Vertraulichkeitspunkt: Wenn man es so einfach dekodieren kann, kann das auch jeder, der es über einfaches HTTP abfängt.

Wo der Generator zu den anderen Werkzeugen passt

Basic auth ist eines von mehreren Anmeldeinformations - und Anforderungstools auf der Website, die dasselbe clientseitige Modell ohne Hochladen teilen Wenn das Token, das Sie inspizieren, ein Träger-Token und nicht Basic-Auth ist, wird die JWT-Decoder Liest die Ansprüche aus einem JSON Web Token Wenn Sie einen Hash anstelle einer Kodierung benötigen, wird für eine Prüfsumme oder einen Passwort-Digest die Hash-generator Berechnet es. Wenn Sie nur beliebige Basis64 und nicht speziell einen Anmeldeinformationen kodieren oder dekodieren möchten, wird die base64-konverter Handelt den allgemeinen Fall Und wenn Sie die Anfrage selbst debuggen und wissen möchten, welcher Client sie gesendet hat, wird die Benutzeragenten-Parser Liest den User-Agent Header.

Für eine breitere Karte der Zusammenarbeit dieser Anforderungs- und Antwortdienstprogramme ist die Webentwickler-Toolkit Roundup geht durch eine realistische Debugging-Sitzung, und die Entwicklerproduktivitätstools Leitfaden deckt das Zusammenstellen eines persönlichen Satzes davon ab. Die Grundauthentifizierung kommt selten isoliert vor; Normalerweise handelt es sich um eine Zeile in einer Anfrage, die Sie bearbeiten möchten.

Ein funktionierendes Beispiel: Verkabelung einer API-Integration

Lassen Sie mich dies in der Aufgabe begründen, die ich am meisten getroffen habe Sie integrieren einen Drittanbieterdienst, dessen Dokumente sagen, dass sie sich mit Basic auth authentifizieren sollen, indem sie einen API-Schlüssel als Benutzernamen und ein leeres Passwort oder ein Schlüssel-Geheim-Paar verwenden. Die Dokumente geben Ihnen die Anmeldeinformationen, aber nicht den Header, und die erste Anfrage schlägt fehl.

Der zuverlässige Pfad besteht darin, den Header explizit zu erstellen und ihn mit Curl zu testen, bevor Sie eine Zeile Anwendungscode schreiben Fügen Sie den Schlüssel und das Geheimnis in den ein GeneratorKopieren Sie die curl -H Form, und führen Sie es gegen einen bekannten Endpunkt aus, Wenn Curl erfolgreich ist und Ihr Code nicht, liegt das Problem in Ihrer code' s Request-Konstruktion, nicht in der Anmeldeinformation, und Sie haben gerade den Suchraum in zwei Hälften geschnitten, wenn Curl ebenfalls fehlschlägt, ist die Anmeldeinformation selbst falsch, und die Dekodierung des Tokens bestätigt genau, welches Feld ausgeschaltet ist.

In einem WordPress Plugin muss ich oft eine externe API von PHP aufrufen, und der richtige Headerwert ist das, worin ich einspeise wp_remote_get Über die Authorization Kopfzeile-Argument. In Laravel geht es in die withHeaders HTTP-Client aufrufen, oder ich verwende das Framework's withBasicAuth Helfer, der mir den gleichen Header erstellt So oder so, mit dem bekannt-guten Header-Wert vom Generator debugge ich meinen Request-Code gegen einen bereits bewiesenen Credential funktioniert, anstatt beides auf einmal zu debuggen Der Fall mit dem leeren Passwort verdient seinen Keep, denn das vergisst man leicht key: Mit einem nachlaufenden Doppelpunkt ist ein anderer und oft korrekter Abschluss key Allein.

Die letzte Disziplin ist die Sicherheit Den resultierenden Header fügen Sie nicht in ein freigegebenes Dokument, ein Ticket oder einen Chat ein und senden Sie keine Basic-Auth über etwas anderes als HTTPS. Das Token ist das Passwort Da dieses Tool in Ihrem Browser kodiert und niemals etwas hochlädt, ist die Generierung des Zugangs sicher; wo es danach geht, liegt bei Ihnen.

Wann sollte ich Basic auth verwenden und wann nicht?

Basic auth ist nicht für jeden Job das richtige Tool, und wenn man weiß, wo es passt, bleibt man aus der Patsche heraus. Seine Stärke ist Einfachheit: Für Server-zu-Server-Aufrufe, interne Tools, private Paketregister, CI-Jobs und Webhooks, bei denen sich die beiden Enden bereits vertrauen und alles über HTTPS läuft, ist es schwer zu schlagen Es gibt nichts zu verhandeln, kein Token zum Auffrischen, und jeder HTTP-Client und jede HTTP-Bibliothek unterstützt es sofort Wenn Sie beide Seiten kontrollieren und die Verbindung verschlüsselt ist, ist Basic auth eine absolut vernünftige Wahl, die seit dreißig Jahren funktioniert.

Seine Schwächen zeigen sich in dem Moment, in dem Sie über diesen Tellerrand hinausgehen Da die Anmeldeinformationen bei jeder Anfrage gesendet werden, legt eine einzelne durchgesickerte Protokollzeile oder ein Proxy, der Header aufzeichnet, sie dauerhaft offen, und sie zu drehen bedeutet, sie überall auf einmal zu ändern Es hat kein Konzept von Umfang, daher ist ein Basic-Anmeldeinformationen alles oder nichts: Es kann keinen schreibgeschützten Zugriff gewähren oder nach einer Stunde verfallen. Und es legt bei jedem Anruf ein echtes, langlebiges Passwort auf dem Draht fest, während Sie bei tokenbasierten Schemata stattdessen einen kurzlebigen, eng gefassten Anmeldeintrag verteilen können.

Für die benutzerorientierte Authentifizierung oder überall dort, wo Sie Zielfernrohre, Ablauf oder Widerruf benötigen, ist ein Träger-Token das bessere Modell und die JWT-Decoder Ist das Begleitwerkzeug für die Inspektion jener Eine nützliche Faustregel: Greifen Sie nach Basic auth für Machine-to-Machine-Anrufe, die Sie vollständig kontrollieren, und greifen Sie nach Token, wenn ein Dritter, eine Browsersitzung oder eine Berechtigungsgrenze beteiligt ist Die folgende Tabelle fasst den Handel zusammen.

Verwenden Sie die Basisauthentifizierung für Bevorzugen Sie Token für
Server-zu-Server-API ruft Sie control auf Benutzerorientierte Sitzungen
Interne Tools und private Register Scoped- oder schreibgeschützter Zugriff
CI-Jobs und Webhooks über HTTPS Anmeldeinformationen, die ablaufen müssen

Häufig gestellte Fragen

Was ist HTTP Basic Authentication? HTTP Basic Authentication ist ein Schema, bei dem ein Client mit jeder Anfrage im Authorization-Header einen Benutzernamen und ein Passwort sendet Der Wert ist das Wort Basic gefolgt von der basis64-Kodierung von username: password Es ist in RFC 7617 definiert und ist die einfachste Möglichkeit für einen Server, Anmeldeinformationen zu überprüfen.

Wie wird der Basic-Authentifizierungsheader erstellt? Verbinden Sie Benutzername und Passwort mit einem einzigen Doppelpunkt, um Benutzername: Passwort zu bilden, kodieren Sie diese Zeichenfolge als UTF-8-Bytes, codieren Sie die Bytes mit base64 und fixen Sie das Ergebnis mit Basic vor Der letzte Header ist Authorization: Basic, gefolgt von diesem Token.

Ist die Basic-Authentifizierung sicher? Nur über HTTPS. Base64 ist Kodierung, keine Verschlüsselung, so dass jeder, der den Header lesen kann, das Passwort sofort dekodieren kann Die Basisauth bietet keine Vertraulichkeit für sich und muss immer über eine TLS-Verbindung gesendet werden, um sicher zu sein.

Kann der Benutzername einen Doppelpunkt enthalten? Nein. Der erste Doppelpunkt trennt den Benutzernamen vom Passwort, so dass ein Doppelpunkt im Benutzernamen als Grenze falsch gelesen und die Anmeldeinformationen an der falschen Stelle aufgeteilt würde Das Passwort kann beliebig viele Doppelpunkte enthalten Der Generator warnt Sie, wenn der Benutzername einen hat.

Wie dekodiere ich ein Basic auth-Token? Nehmen Sie den base64-Teil nach Basic, base64-decodieren Sie ihn und lesen Sie ihn als UTF-8-Text. Das Ergebnis ist Benutzername: Passwort, aufgeteilt auf dem ersten Doppelpunkt Fügen Sie einen beliebigen Basic-Auth-Header in den Tool's-Decodierungsmodus ein, um dies sofort zu tun.

Was ist das Curl-Äquivalent? curl - u Benutzername: password https://example.com Macht das gleiche, denn curl baut für Sie aus dem - u-Wert den Authorization: Basic-Header auf Das Tool zeigt sowohl dieses Formular als auch das explizite - H-Header-Formular an, damit Sie kopieren können, was passt.

Schickt dieses Tool meine Anmeldeinformationen irgendwohin? Nein. Die Kodierung und Dekodierung läuft vollständig in Ihrem Browser mit JavaScript Ihr Benutzername und Ihr Passwort werden nie auf einen Server hochgeladen, sodass die Verwendung mit echten Live-Anmeldeinformationen sicher ist.

Warum UTF-8-Kodierung für die Anmeldeinformationen verwenden? RFC 7617 empfiehlt UTF-8, damit Nicht-ASCII-Benutzernamen und Passwörter konsistent zwischen Client und Server kodieren. Ein Encoder, der davon ausgeht, dass ASCII akzentuierte Buchstaben oder nicht-lateinische Skripte beschädigen würde, wodurch ein Token entsteht, mit dem der Server nicht übereinstimmen kann.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!