Base64 in Python: Text‑ und Bild‑Encoding einfach erklärt

1. Was ist Base64? Grundlegende Verwendung in Python

Was ist Base64? Base64 ist ein Verfahren, um Binärdaten in Textform zu kodieren. Es wird insbesondere in E‑Mails, URLs und Webkommunikation verwendet und dient dem sicheren Versand von Binärdaten. Diese Technik ermöglicht es, Bilder und Dateien zu kodieren und sie textbasiert sicher auszutauschen. Vorteile der Verwendung von Base64 in Python In Python kann man mit der Standardbibliothek base64 Base64‑Kodierung und -Dekodierung einfach nutzen, ohne zusätzliche Installation. Der folgende Code zeigt, wie man einen String in Base64 kodiert und anschließend wieder dekodiert.
import base64

# Zu kodierende Daten
data = "Hallo"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data)  # b'44GT44KT44Gr44Gh44Gv'

# Dekodieren und zurück zum Original
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Hallo
  • b64encode() Funktion kodiert Byte‑Sequenzen in Base64. encode('utf-8') wird verwendet, um einen String in eine Byte‑Sequenz zu konvertieren.
  • b64decode() Funktion dekodiert die kodierten Daten und gibt den ursprünglichen String zurück.

2. Vorgehensweise zum Base64‑Kodieren mit Python

Zeichenkettenkodierung Base64‑Kodierung erfolgt, indem Text oder Daten zuerst in ein Byte‑Array umgewandelt werden. Der folgende Code zeigt, wie man in Python eine Zeichenkette kodiert.
import base64

# Zeichenkette kodieren
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text)  # b'UHl0aG9uIEJhc2U2NA=='
Erklärung: encode('utf-8') wandelt die Zeichenkette in ein Byte‑Array um, und b64encode() führt die Base64‑Kodierung durch. Die kodierten Daten werden als Byte‑Array angezeigt.

3. Funktionsweise der Base64-Dekodierung und Beispiel

Methode zum Wiederherstellen codierter Daten Im Folgenden ein Beispiel, das Base64-codierte Daten dekodiert und in die ursprüngliche Zeichenkette zurückführt.
import base64

# Base64-codierte Daten
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# Dekodieren und zurück zur ursprünglichen Zeichenkette
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Python is great
Wichtige Punkte: Da die dekodierten Daten als Bytefolge zurückgegeben werden, verwendet man decode('utf-8'), um sie in eine Zeichenkette zurückzuverwandeln. Dadurch kann die codierte Zeichenkette in ihr ursprüngliches Format wiederhergestellt werden.

4. Bilddateien in Python mit Base64 kodieren und dekodieren

Bilddatei in Base64-Format konvertieren Base64 kann auch Binärdaten wie Bilddateien kodieren. Im folgenden Beispiel wird gezeigt, wie man eine Bilddatei mit Base64 kodiert und im Textformat speichert.
import base64

# Bilddatei einlesen und in Base64-Format kodieren
with open('image.png', 'rb') as img_file:
    encoded_image = base64.b64encode(img_file.read())
    print(encoded_image)
Bilddatei wiederherstellen Im Folgenden finden Sie den Code, der die kodierte Bilddatei dekodiert und wieder in ein Bildformat zurückführt.
import base64

# Kodierte Bilddaten
encoded_image = b'...'  # Kodierte Daten

# Dekodieren und als Bilddatei speichern
with open('decoded_image.png', 'wb') as img_file:
    img_file.write(base64.b64decode(encoded_image))
Erklärung: <code64encode() wird verwendet, um das Bild zu kodieren, und b64decode() dekodiert es, sodass es wieder in Binärdaten zurückverwandelt werden kann.

5. Praktische Anwendungsbeispiele von Base64

Verwendungsbeispiel in Webanwendungen Base64 ist sehr nützlich, wenn Daten in Webanwendungen oder APIs ausgetauscht werden. Zum Beispiel ein API‑Beispiel, das ein Bild in das Base64‑Format konvertiert und als JSON‑Antwort zurückgibt.
from flask import Flask, jsonify
import base64

app = Flask(__name__)

@app.route('/image')
def get_image():
    with open('image.png', 'rb') as image_file:
        encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
    return jsonify({'image': encoded_image})

if __name__ == '__main__':
    app.run(debug=True)
Dieses API ist ein einfaches Beispiel, das ein Bild in Base64 kodiert und als JSON zurückgibt. In Webanwendungen ist es nützlich, um Bilder in Datenbanken zu speichern oder Bilddaten über API‑Kommunikation auszutauschen.

6. Base64-Kodierung: Hinweise und Beschränkungen

Erhöhung der Datenmenge Base64-Kodierung hat den Nachteil, dass die Datenmenge um etwa 33 % zunimmt. Das liegt daran, dass Base64 3 Byte Daten in 4 Byte Text umwandelt. Zum Beispiel wird ein 1 MB Bild, das Base64-kodiert wird, zu 1,33 MB. Konkretes Beispiel für die Datenmenge-Erhöhung Wird eine 100 KB Datei kodiert, entsteht etwa 133 KB. Wenn große Dateien häufig ausgetauscht werden, wirkt sich das auf die Übertragungsgeschwindigkeit und den Speicherplatz aus, sodass die Kombination von Optimierungs‑ und Kompressionstechniken wichtig ist.

Zusammenfassung

In diesem Artikel haben wir die Methoden zur Base64‑Kodierung und -Dekodierung in Python, praktische Anwendungsbeispiele sowie die Vor‑ und Nachteile der Base64‑Kodierung erläutert. Base64 ist eine äußerst nützliche Technologie für die Datenübertragung und -speicherung und wird insbesondere in Web‑Anwendungen und APIs breit eingesetzt. Allerdings ist es wichtig, die Einschränkung der erhöhten Datenmenge zu berücksichtigen und Base64 nur dort einzusetzen, wo es sinnvoll ist. Bitte nutzen Sie diese Technologie in zukünftigen Projekten.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール