Base64-Kodierung in Golang

Beginner

This tutorial is from open-source community. Access the source code

Einführung

Dieses Labor zielt darauf ab, Ihr Wissen über die Base64-Kodierung in Golang zu testen.

Base64-Kodierung

Sie müssen ein Golang-Programm schreiben, das einen gegebenen String mit der standardmäßigen und der URL-kompatiblen Base64-Kodierung codiert und decodiert.

  • Das Programm sollte das encoding/base64-Paket mit dem Namen b64 importieren, statt des Standardnamens base64.
  • Das Programm sollte den gegebenen String mit der standardmäßigen und der URL-kompatiblen Base64-Kodierung codieren.
  • Das Programm sollte die codierten Strings mit der standardmäßigen und der URL-kompatiblen Base64-Dekodierung decodieren.
  • Das Programm sollte die codierten und decodierten Strings in der Konsole ausgeben.
## Der String codiert sich mit den standardmäßigen und
## URL-basierten Base64-Codierern zu leicht unterschiedlichen
## Werten (Endung `+` vs `-`), aber beide decodieren
## wie gewünscht zum ursprünglichen String.

Hier ist der vollständige Code:

// Go bietet eine integrierte Unterstützung für die [Base64-
// Kodierung/Dekodierung](https://en.wikipedia.org/wiki/Base64).

package main

// Diese Syntax importiert das `encoding/base64`-Paket mit
// dem Namen `b64` statt des Standardnamens `base64`. Dies
// spart uns etwas Platz unten.
import (
    b64 "encoding/base64"
    "fmt"
)

func main() {

    // Hier ist der `string`, den wir codieren/decodieren werden.
    data := "abc123!?$*&()'-=@~"

    // Go unterstützt sowohl die standardmäßige als auch die
    // URL-kompatible Base64. So codieren wir mit dem
    // standardmäßigen Codierer. Der Codierer erfordert ein
    // `[]byte`, also konvertieren wir unseren `string` in
    // diesen Typ.
    sEnc := b64.StdEncoding.EncodeToString([]byte(data))
    fmt.Println(sEnc)

    // Die Dekodierung kann einen Fehler zurückgeben, den Sie
    // überprüfen können, wenn Sie nicht bereits wissen, dass
    // die Eingabe gut geformt ist.
    sDec, _ := b64.StdEncoding.DecodeString(sEnc)
    fmt.Println(string(sDec))
    fmt.Println()

    // Dies codiert/decodiert mit einem URL-kompatiblen
    // Base64-Format.
    uEnc := b64.URLEncoding.EncodeToString([]byte(data))
    fmt.Println(uEnc)
    uDec, _ := b64.URLEncoding.DecodeString(uEnc)
    fmt.Println(string(uDec))
}

Zusammenfassung

In diesem Labor haben Sie gelernt, wie man einen gegebenen String mit der standardmäßigen und der URL-kompatiblen Base64-Kodierung in Golang codiert und decodiert.