Base64-Kodierung
Das Modul base64 kodiert Strings und Binärdaten mit Standard-Base64 nach RFC 4648 und dekodiert sie zurück in Bytes.
Diese Seite ist eine API-Referenz. Ausdrücke, die nur eine Ausgabe zeigen, veranschaulichen erfolgreiche Werte; Dateisystem- und Transportbeispiele prüfen den optionalen zweiten Rückgabewert error, bevor sie Daten weiterverwenden. Namen wie username, password, encoded_image und user_input sind von der Anwendung bereitgestellte Strings.
Base64 ist eine Kodierung, keine Verschlüsselung oder Authentifizierung. Verwenden Sie es weder zum Verbergen von Geheimnissen noch zum Prüfen, ob Daten verändert wurden. Übertragen Sie Anmeldedaten für Basic Authentication nur über TLS und beziehen Sie sie aus einem anwendungseigenen Secret Store statt aus Literalen.
Laden
local base64 = require("base64")
Fügen Sie base64 zur modules:-Liste des ausführbaren Eintrags hinzu, bevor Sie das Modul laden. Dateisystem- und JSON-Beispiele benötigen zusätzlich fs beziehungsweise json.
Kodierung
encode
Kodiert einen String (einschließlich Binärdaten) zu Base64.
-- Encode text
local encoded, err = base64.encode("Hello, World!")
if err then return nil, err end
print(encoded) -- "SGVsbG8sIFdvcmxkIQ=="
-- Binärdaten kodieren (z.B. aus Datei)
local image_data = fs.get("app:data"):readfile("photo.jpg")
local image_b64 = base64.encode(image_data)
-- Encode JSON for transport
local json = require("json")
local payload, json_err = json.encode({user = "alice", action = "login"})
if json_err then return nil, json_err end
local token_part, token_err = base64.encode(payload)
if token_err then return nil, token_err end
-- Encode credentials
local credentials, credentials_err = base64.encode(username .. ":" .. password)
if credentials_err then return nil, credentials_err end
local auth_header = "Basic " .. credentials
| Parameter | Typ | Beschreibung |
|---|---|---|
data |
string | Zu kodierende Daten (Text oder binär) |
Rückgabewerte: string, error — eine leere Eingabe gibt einen leeren String zurück
Dekodierung
decode
Dekodiert einen Base64-String in seine ursprünglichen Bytes.
-- Decode text
local decoded, decode_err = base64.decode("SGVsbG8sIFdvcmxkIQ==")
if decode_err then return nil, decode_err end
print(decoded) -- "Hello, World!"
-- Decode with error handling
local data, err = base64.decode(user_input)
if err then
return nil, errors.new("Invalid base64 data"):kind(errors.INVALID)
end
-- Decode binary data
local image_data, err = base64.decode(encoded_image)
if err then
return nil, err
end
fs.get("app:data"):writefile("output.jpg", image_data)
-- Ein base64-verpacktes JSON-Dokument dekodieren
local json = require("json")
local doc = json.decode(base64.decode(encoded_json))
| Parameter | Typ | Beschreibung |
|---|---|---|
data |
string | Base64-kodierter String |
Rückgabewerte: string, error — eine leere Eingabe gibt einen leeren String zurück
Fehler
| Bedingung | Art | Wiederholbar |
|---|---|---|
| Eingabe ist kein String | errors.INVALID |
nein |
| Ungültige Base64-Zeichen | errors.INVALID |
nein |
| Beschädigtes Padding | errors.INVALID |
nein |
Siehe Fehlerbehandlung für die Arbeit mit Fehlern. Der letzte Block demonstriert nur den Umgang mit Trennzeichen. Er parst oder verifiziert kein signiertes Tokenformat.