Ich habe gehört, dass hier und da von "Base 64 Encoding" die Rede ist. Wofür wird sie verwendet?
Werden die Daten schneller übertragen?
Ich habe gehört, dass hier und da von "Base 64 Encoding" die Rede ist. Wofür wird sie verwendet?
Base64 est un binär zu einem Textkodierungsschema die binäre Daten in einem ASCII-String-Format darstellt. Es ist für die Übertragung von im Binärformat gespeicherten Daten über die Netzwerkkanäle vorgesehen.
Der Base64-Mechanismus verwendet 64 Zeichen zur Kodierung. Diese Zeichen bestehen aus:
Wie base64 funktioniert
Die Schritte zur Kodierung einer Zeichenfolge mit dem base64-Algorithmus sind wie folgt:
Jetzt haben wir die kodierte Version der Eingabezeichenfolge.
Machen wir ein Beispiel: Konvertieren von String THS in eine base64-kodierte Zeichenfolge.
Zählen Sie die Anzahl der Zeichen: Sie ist bereits ein Vielfaches von 3.
Umwandlung in ASCII-Binärformat 8-Bit. Wir erhalten (T) 01010100 (H) 01001000 (S) 01010011
Binäre Daten in 6-Bit-Blöcke unterteilen. Wir erhalten 010101 000100 100001 010011
Konvertieren von 6-Bit-Binärdaten in Dezimalzahlen: Wir haben 21 4 33 19
Konvertierung von Dezimalzahlen in eine Zeichenkette gemäß der base64-Indextabelle. Wir haben VEhT
"Base64-Kodierungsschemata werden üblicherweise verwendet, wenn Binärdaten kodiert werden müssen, die auf Medien gespeichert und übertragen werden sollen, die für Textdaten ausgelegt sind. Damit soll sichergestellt werden, dass die Daten während des Transports unverändert bleiben" (Wiki, 2017)
Ein Beispiel könnte folgendes sein: Sie haben einen Webdienst, der nur ASCII-Zeichen akzeptiert. Sie möchten die Daten des Benutzers speichern und dann an einen anderen Ort (API) übertragen, aber der Empfänger möchte die Daten unverändert erhalten. Base64 ist dafür geeignet. . . Der einzige Nachteil ist, dass die Base64-Kodierung etwa 33 % mehr Platz benötigt als normale Zeichenketten.
Ein anderes Beispiel:: uenc = url encoded = aHR0cDovL2xvYy5tYWdlbnRvLmNvbS9hc2ljcy1tZW4tcy1nZWwta2F5YW5vLXhpaS5odG1s = http://loc.querytip.com/asics-men-s-gel-kayano-xii.html .
Wie Sie sehen, können wir das Zeichen "/" nicht in die URL einfügen, wenn wir die zuletzt besuchte URL als Parameter senden wollen, weil wir damit gegen die Attribut/Wert-Regel für "MOD Rewrite" - GET-Parameter verstoßen würden.
Ein vollständiges Beispiel wäre: " http://loc.querytip.com/checkout/cart/add/uenc/http://loc.magento.com/asics-men-s-gel-kayano-xii.html/product/93/ "
Die Verwendung von Base64, die ich hier beschreiben werde, ist eine Art Hack. Wenn Sie also keine Hacks mögen, fahren Sie bitte nicht fort.
Ich geriet in Schwierigkeiten, als ich entdeckte, dass das utf8 von MySQL keine 4-Byte-Unicode-Zeichen unterstützt, da es eine 3-Byte-Version von utf8 verwendet. Was habe ich also getan, um vollen 4-Byte-Unicode über MySQL's utf8 zu unterstützen? Nun, base64 kodiert Strings beim Speichern in der Datenbank und base64 dekodiert beim Abrufen.
Da die base64-Kodierung und -Dekodierung sehr schnell ist, funktionierte die obige Vorgehensweise perfekt.
Die folgenden Punkte sind zu beachten:
Base64-Kodierung benötigt 33 % mehr Speicherplatz
In der Datenbank gespeicherte Zeichenketten sind nicht für Menschen lesbar (Sie könnten das als eine Funktion verkaufen, dass Datenbankzeichenketten eine grundlegende Form der Verschlüsselung verwenden).
Sie können die obige Methode für jedes Speichermodul verwenden, das Unicode nicht unterstützt.
"Man könnte das als eine Funktion verkaufen, dass Datenbankstrings eine grundlegende Form der Verschlüsselung verwenden" Mir gefällt Ihr Stil :D
"Man könnte das als eine Funktion verkaufen, dass Datenbankstrings eine grundlegende Form der Verschlüsselung verwenden", was für eine schreckliche Aussage :D
Grundlegende Form der Verschlüsselung gegen jeden, der den base64-Entschlüsselungsalgorithmus nicht hat rofl :D
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
9 Stimmen
Aus dem Handbuch für base64_encode() : "Diese Kodierung wurde entwickelt, damit binäre Daten den Transport durch Transportschichten überstehen, die nicht 8-Bit sauber sind, wie z.B. Mail-Bodies."