Ich bekomme keine Base64-Verschlüsselung.
Wenn man eine Base64-Zeichenfolge entschlüsseln kann, wozu dient sie dann?
Warum wird es für die HTTP Basic-Authentifizierung verwendet?
Es ist, als würde man jemandem sagen, dass mein Passwort in OLLEH umgekehrt ist.
Leute, die OLLEH sehen, werden wissen, dass das ursprüngliche Passwort HALLO war.
security
encryption
base64
Ajsie
quelle
quelle
Antworten:
Base64 ist keine Verschlüsselung - es ist eine Codierung. Auf diese Weise können Binärdaten nur mit druckbaren (Text-) Zeichen dargestellt werden.
Siehe diesen Abschnitt aus der Wikipedia - Seite für HTTP Basic Authentication :
quelle
Es wird normalerweise Base64-Codierung genannt, nicht Verschlüsselung! Das Schöne an der Base64-Codierung ist, dass Sie (binäre) Daten nur mit einer begrenzten gemeinsamen Teilmenge der verfügbaren Zeichen darstellen können, was weitaus effizienter ist, als beispielsweise nur eine Zeichenfolge mit Einsen und Nullen als ASCII zu schreiben.
quelle
x2
mehr Bytes als der ursprüngliche Stream machen würde und 1s, 0s - machtx8
mal mehr Bytes. (Und Base64 erstelltx1.3
mehr Daten als das ursprüngliche Byte-Array). Daher ist es manchmal akzeptabel, den Binärstrom als Hex-Zeichenfolge zu codieren und die Bytemenge zu verdoppeln - zum Beispiel nur, um den Kennwort-Hash in der Datenbank zu speichern.En Krypta - Ionen erfordert einen Schlüssel (string oder Algorithmus) , um zu entschlüsseln; daher die "Krypta" (Wurzel: Kryptographie )
En cod ing ändert / Verschiebungen / ändert einen Zeichencode in ein anderes. In diesem Fall können jetzt übliche Datenbytes einfach über HTTP dargestellt und transportiert werden.
quelle
In der Alltagssprache ist ein „Code“ etwas Geheimnisvolles. In Wissenschaft und Technik ist ein Code einfach eine Vereinbarung, ein Regelwerk, wie man etwas schreibt.
Dieser Code kann geheim sein. In diesem Fall spricht man von einer Verschlüsselung. Im Allgemeinen ist ein Code jedoch nicht geheim. Nimm den genetischen Code. Darin heißt es lediglich , dass unsere DNA aus vier verschiedenen Basen aufgebaut ist -
A
,C
,G
und ,T
und dass drei Basen zusammen eine Aminosäure genommen bilden. Es gibt auch eine Tabelle, von der drei Buchstaben welche Aminosäure bilden.An diesem Code ist nichts Geheimnisvolles.
Ebenso ist Base64 kein Geheimcode. Es handelt sich vielmehr um einen Code, mit dem Daten in sechs Bits pro Zeichen gespeichert werden können (es gibt also 64 verschiedene Entitäten, dh die „Basis“ des Systems ist 64, genau wie die Basis unseres Dezimalsystems 10 ist, da es 10 verschiedene Entitäten gibt genannt "Ziffern").
quelle
Sie könnten "Base 64-Codierung" meinen. Verschlüsselung ist nicht dasselbe wie Codierung.
Wikipedia: Verschlüsselung
quelle
Die Base-64-Codierung ist Teil der MIME-Spezifikationen. Es bietet eine transportsichere Codierung für Daten, die nicht gekaut werden, wenn sie über einen Host weitergeleitet werden, der ein anderes Codierungsschema als das vom ursprünglichen Client verwendete verwendet.
Es gibt viele verschiedene Hosts auf den Intertubes, und Sie können nicht wirklich davon ausgehen, dass etwas anderes als 7-Bit-ASCII unterstützt wird, ohne Datenverlust / -verwirrung zu riskieren.
IBM Mainframes verwenden beispielsweise eine Codierung namens EBCDIC (die in vielen verschiedenen Varianten erhältlich ist). Die Codepunkte unterscheiden sich vollständig von den Codepunkten, die von ASCII-basierten Computern verwendet werden. In ASCII sind die Buchstaben AZ 0x41 - 0x5A. In EBCDIC sind die Buchstaben A - Z nicht einmal ein zusammenhängender Bereich: Die Buchstaben AI leben bei 0xC1 - 0xC9, die Buchstaben JR leben bei 0xD1 - 0xD9 und die Buchstaben SZ leben bei 0xE2 - 0xE9.
quelle
Standardmäßig dürfen die Parameter des Nachrichtenkopffelds in HTTP-Nachrichten (Hypertext Transfer Protocol) keine Zeichen außerhalb des ISO-8859-1-Zeichensatzes enthalten.
Wenn Benutzername und Kennwort einen inkompatiblen Zeichensatz enthalten, kann HTTP diesen Text nicht übertragen. Um dies zu verhindern, verschlüsseln wir Benutzername und Passwort mit base64, um sicherzustellen, dass wir HTTP-kompatibles Zeichen über HTTP senden. Weitere Informationen finden Sie in dieser Basic_access_authentication
quelle