Base64 ist eine Binär- bis Textual content-Codierungsmethode, die Binärdaten im ASCII-String-Format darstellt. Es wird häufig verwendet, um Daten für die Übertragung über Medien zu codieren, die hauptsächlich Textual content sind, wie E-Mails, JSON-basierte APIs usw., damit binäre Daten wie Bilder und Dateien nicht beschädigt werden. Der Begriff Base64 ergibt sich aus der Tatsache, dass 64 Zeichen-AZ, AZ, 0-9, +und / zur Darstellung von Daten verwendet werden. In den letzten Jahren, ichT wurde häufig in multimodalen KI-Anwendungen, eingebetteten Systemen, Cloud-basierten Diensten und Webentwicklung verwendet. In diesem Artikel werden wir mehr über Base64 und wie man es benutzt.

Warum Base64?

Base64 wird hauptsächlich in Fällen verwendet, in denen binäre Daten (z. B. Bilder, Movies, Modellgewichte usw.) durch textbasierte Infrastrukturen weitergeleitet werden müssen, ohne verändert oder beschädigt zu werden. Aber warum ist es eine beliebte Wahl unter so vielen anderen Arten von Codierungen? Versuchen wir zu verstehen.

Base64 ist:

  • Textsicher: Kann Binärdaten in textbasierte Formate wie HTML, XML, JSON usw. einbetten.
  • Leicht zu transportieren: Keine Probleme mit Charaktercodierung oder Datenbeschädigung.
  • Gemeinsam für Bilder: Häufig in der Webentwicklung verwendet, um Bilder direkt in HTML/CSS- oder JSON -Payloads einzubetten.

Und hier ist, wie andere berühmte Kodierungen mit Base64 verglichen werden.

Codierung Zweck Anwendungsfall Größenwirkung
Basis64 Binär zum Textual content Einbetten von Bildern/Dateien in HTML, JSON usw. ~ 33% steigen
Verhexen Binär zu hexadezimal Debugging, Netzwerkspuren ~ 100% zunehmen
Gzip Kompression Tatsächliche Größenreduzierung für Textual content/binär Kompressionsverhältnisabhängig

Lesen Sie auch: Was sind kategoriale Datencodierungsmethoden | Binärer Codierung

Wie funktioniert Base64?

Versuchen wir nun zu verstehen, wie Base64 funktioniert. Hier ist eine Vorgehensweise über die Schritt-für-Schritt-Konvertierung der Saite „Hallo“ in sein Base64 -Format.

Schritt 1: Konvertieren Sie den Textual content in ASCII -Bytes

Charakter ASCII -Dezimalwert Binärwert (8 Bit)
H 72 01001000
e 101 01100101
l 108 01101100
l 108 01101100
O 111 01101111

Jetzt würde unsere Zeichenfolge „Hallo“ wie 01001000 01100101 01101100 01101100 01101111 aussehen.

Das sind 5 Zeichen × 8 Bit = 40 Bit.

Schritt 2: Brechen Sie die Binärin in 6-Bit-Gruppen ein

Base64 arbeitet auf 6-Bit-BlöckeAdditionally gruppieren wir die 40 Bit in Stücke von 6, die zuvor in Stücken von 8 waren:

01001000 01100101 01101100 01101100 01101111

Wenn diese Teile von 8 in Gruppen von 6 Gruppen gruppiert sind, sehen sie so aus:

010010 000110 010101 101100 011011 000110 1111

Da 40 um 6 nicht direkt teilbar sind, müssen wir am Ende einige 0s auf den Markt bringen. Wir haben jetzt 6 volle 6-Bit-Blöcke und 1 4-Bit-Block. Wir padeln den letzten Block mit 2 Null-Bits, um ihn zu einem vollen 6-Bit-Stück zu machen:

010010 000110 010101 101100 011011 000110 111100

Schritt 3: Konvertieren Sie 6-Bit-Gruppen in Dezimalgruppen

Wir wissen, dass 2^6 64 ist. Unser Bereich wird additionally zwischen 0 und 63 liegen.

6-Bit-binär Dezimal
010010 18
000110 6
010101 21
101100 44
011011 27
000110 6
111100 60

Schritt 4: Karte zu Base64 Zeichen

Nach der Normal -Basis64 -Zeichen Tabelle werden wir unsere Dezimalwerte den entsprechenden Zeichen abbilden.

Standard Base64 -Zeichen Tabelle
Quelle – Hyperlink
Dezimal Basis64 Charakter
18 S
6 G
21 V
44 S
27 B
6 G
60 8

Wir erhalten „SGVSBG8“ als unsere Base64 -Codierung für unsere Zeichenfolge „Hallo“.

Schritt 5: Polsterung hinzufügen

Da unsere ursprüngliche Zeichenfolge 5 Bytes hatte (nicht ein Vielfaches von 3), erfordert Base64 eine Polsterung mit „=“, um die Ausgangslänge zu einem Vielfachen von 4 Zeichen zu machen.

5 Bytes = 40 Bit -> 6 Full Base64 -Zeichen + 2 weitere Zeichen (aus gepolsterten Bits) -> Gesamt 8 Zeichen

Finale Base64 Coded String: „Hallo“ -> SGVSBG8 =

Lesen Sie auch: Komplette Anleitung zum Codieren numerischer Merkmale im maschinellen Lernen

Python -Implementierung von Base64

Nachdem Sie verstehen, wie Base64 funktioniert, möchte ich Ihnen zeigen, wie Sie es in Python implementieren können. Wir werden zuerst versuchen, einen Textual content zu codieren und zu dekodieren, und dann dasselbe mit einem Bild tun.

Codierung und Dekodierungstext

Codieren wir diesen einfachen Textual content mit Base64 und dekodieren Sie dann die codierte Zeichenfolge zurück in seine ursprüngliche Type.

import base64

# Textual content encoding
message = "Good day World"
encoded = base64.b64encode(message.encode())
print("Encoded:", encoded)
 
# Decoding it again
decoded = base64.b64decode(encoded).decode()
print("Decoded:", decoded)

Ausgabe

Codierung und Dekodieren von Text mit Base64

Kodierung und Dekodierung von Bildern

In sehbezogenen Anwendungen, insbesondere mit Sichtsprachmodelle (VLMS), Bilder werden häufig in Base64 codiert, wenn:

  • Übertragen Sie Bilder über JSON -Payloads an oder von APIs.
  • Einbetten von Bildern zum Coaching und Servieren von multimodalen Modellen.
  • Mit Clip, Blip, LLAVA oder anderen Visionsprachtransformatoren, die Bilder als serialisierte Basis64-Saiten akzeptieren.

Hier ist ein einfacher Python -Code, um Bilder zu codieren und zu dekodieren.

from PIL import Picture
import base64
import io

# Load and encode picture

img = Picture.open("instance.jpeg")
buffered = io.BytesIO()

img.save(buffered, format="JPEG")
img_bytes = buffered.getvalue()
img_base64 = base64.b64encode(img_bytes).decode('utf-8')

print("Base64 String:", img_base64(:100), "...")  # Truncated

Ausgabe

Base64 zur Komprimierung und Übertragung von Daten

Mit dem folgenden Code können wir auch unsere codierten Daten von Base 64 zum Bild zurück zum Bild dekodieren.

from PIL import Picture
import base64
import io
from IPython.show import show, Picture as IPythonImage

# Assume `img_base64` is the base64 string

img_data = base64.b64decode(img_base64)

img = Picture.open(io.BytesIO(img_data))
show(IPythonImage(information=img_data))

Ausgabe

Codierung und Dekodierung von Bildern mit Base64

Um mehr über Base64 zu erfahren und viele weitere Encoder und Decoder zu finden, können Sie dies verweisen Web site.

Dinge, die Sie bei der Verwendung von Base64 berücksichtigen sollten

Obwohl Base64 in verschiedenen Anwendungsfällen über die Domänen hinweg von großer Bedeutung ist, sind hier einige Dinge zu beachten, während sie damit arbeiten.

  1. Größenaufwand (~ 33%): Für jeweils 3 Bytes binärer geben Sie 4 Bytes Textual content aus. Auf großen Chargen (z. B. Tausende von Hochrahmen) kann dies schnell eine Netzwerk- und Speicherbandbreite konsumieren. Betrachten Sie Komprimierungsbilder (JPEG/PNG) vor Base64 und verwenden Sie nach Möglichkeit Streaming.
  2. Speicher & CPU -Final: Wenn Sie ein ganzes Bild gleichzeitig konvertieren und gepuffert, können Sie die allgemeine Speicherverwendung während der Codierung ansprechen. In ähnlicher Weise fügt das Dekodieren in rohe Bytes und das Analysieren über eine Bildbibliothek auch CPU -Overhead hinzu.
  3. Kein Komprimierungsalgorithmus: Base64 reduziert die Größe nicht, sondern es blüht sie auf. Wenden Sie immer echte Komprimierung (z. B. JPEG, WebP) auf die Binärdaten an vor Codierung nach Base64.
  4. Sicherheitsüberlegungen: Wenn wir Base64 -Saiten blind zu HTML oder JSON ohne Reinigung verketten, können Sie XSS- oder JSON -Injektionsvektoren öffnen. Außerdem können extrem große Basis64 -Daten die Parser erschöpfen und maximale Nutzlastgrößen am Gateway durchsetzen.

Abschluss

In einer Zeit, in der Modelle sowohl „sehen“ als auch „lesen“ können, ist Base64 leise zu einem Eckpfeiler multimodaler Systeme geworden. Es spielt eine sehr wichtige Rolle bei der Datencodierung, indem es die Lücke zwischen binären Daten und nur textbezogenen Systemen überbrückt. In Imaginative and prescient -Language -Workflows standardisiert es, wie Bilder von mobilen Shoppers zu Cloud -GPUs wandern und gleichzeitig die Reproduzierbarkeit bewahren und die Integration lindern.

Bilder mit textbasierter Infrastruktur kompatibel zu machen, conflict schon immer ein komplexes Drawback, das zu lösen ist. Base64 Codierung bietet eine praktische Lösung dafür, die die Bildübertragung über APIs und Verpackungsdatensätze für das Coaching ermöglicht.

Genai Praktikant @ Analytics Vidhya | Letzte Jahr @ Vit Chennai
Leidenschaftlich für KI und maschinelles Lernen, ich bin bestrebt, als KI/ML -Ingenieur oder Datenwissenschaftler in Rollen einzutauchen, wo ich einen echten Einfluss haben kann. Ich freue mich sehr, progressive Lösungen und hochmoderne Fortschritte auf den Tisch zu bringen. Meine Neugier treibt mich an, KI über verschiedene Bereiche hinweg zu erkunden und die Initiative zu ergreifen, um sich mit Information Engineering zu befassen, um sicherzustellen, dass ich vorne bleibe und wirksame Projekte liefere.

Melden Sie sich an, um weiter zu lesen und Experten-Kuratinhalte zu genießen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert