Codificação Base64 em Golang

Beginner

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

Introdução

Este laboratório tem como objetivo testar seus conhecimentos sobre a codificação base64 em Golang.

Codificação Base64

Você deve escrever um programa Golang que codifica e decodifica uma determinada string usando a codificação base64 padrão e compatível com URL.

  • O programa deve importar o pacote encoding/base64 com o nome b64 em vez do padrão base64.
  • O programa deve codificar a string fornecida usando a codificação base64 padrão e compatível com URL.
  • O programa deve decodificar a string codificada usando a decodificação base64 padrão e compatível com URL.
  • O programa deve imprimir as strings codificadas e decodificadas no console.
## A string é codificada em valores ligeiramente diferentes com os
## codificadores base64 padrão e URL (trailing `+` vs `-`)
## mas ambos decodificam para a string original como desejado.

Aqui está o código completo:

// Go fornece suporte embutido para [base64
// codificação/decodificação](https://en.wikipedia.org/wiki/Base64).

package main

// Esta sintaxe importa o pacote `encoding/base64` com
// o nome `b64` em vez do padrão `base64`. Isso irá
// nos poupar algum espaço abaixo.
import (
    b64 "encoding/base64"
    "fmt"
)

func main() {

    // Aqui está a `string` que vamos codificar/decodificar.
    data := "abc123!?$*&()'-=@~"

    // Go suporta base64 padrão e compatível com URL
    // base64. Veja como codificar usando o padrão
    // codificador. O codificador requer um `[]byte` então nós
    // convertemos nossa `string` para esse tipo.
    sEnc := b64.StdEncoding.EncodeToString([]byte(data))
    fmt.Println(sEnc)

    // A decodificação pode retornar um erro, que você pode verificar
    // se você já não sabe que a entrada é
    // bem formada.
    sDec, _ := b64.StdEncoding.DecodeString(sEnc)
    fmt.Println(string(sDec))
    fmt.Println()

    // Isso codifica/decodifica usando um base64 compatível com URL
    // formato.
    uEnc := b64.URLEncoding.EncodeToString([]byte(data))
    fmt.Println(uEnc)
    uDec, _ := b64.URLEncoding.DecodeString(uEnc)
    fmt.Println(string(uDec))
}

Resumo

Neste laboratório, você aprendeu como codificar e decodificar uma determinada string usando a codificação base64 padrão e compatível com URL em Golang.