Encoding

Na computação, encoding é o processo de transpor uma sequência de caracteres (letras, números, pontuações, caracteres especiais, símbolos) em um formato que seja eficiente para transmissão e storage.

O formato que comumente utilizamos é o Base64.

Funciona mais ou menos assim:

Code
package main

import (
  b64 "encoding/base64"
  "fmt"
)

func main() {
  // aqui está a string a ser encodada
  data := "abc123!?$*&()'-=@~"

  // realizamos o encoding
  sEnc := b64.StdEncoding.EncodeToString([]byte(data))
  fmt.Println(sEnc)

  // realizamos o decoding
  sDec, _ := b64.StdEncoding.DecodeString(sEnc)
  fmt.Println(string(sDec))
}
Output
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~

"Ok, mas para que utilizaremos isso?" Você deve estar se perguntado.

Imagine você tendo que transferir um trecho de código para outro computador.

Um exemplo como este:

Request com Query Escape em GO
package main

import (
    "fmt"
    "net/url"
)

func main() {
    s := "this will be esc@ped!"
    fmt.Println("http://example.com/say?message="+url.QueryEscape(s))
}

Temos novas linhas, caracteres especiais, etc...

Talvez alguma informação pode ser perdida no meio deste processo dependendo do conteúdo a ser transmitido.

Então transmitir este valor aqui é melhor não?

Base64
cGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImZtdCIKICAgICJuZXQvdXJsIgopCgpmdW5jIG1haW4oKSB7CiAgICBzIDo9ICJ0aGlzIHdpbGwgYmUgZXNjQHBlZCEiCiAgICBmbXQuUHJpbnRsbigiaHR0cDovL2V4YW1wbGUuY29tL3NheT9tZXNzYWdlPSIrdXJsLlF1ZXJ5RXNjYXBlKHMpKQp9

Você pode testar você mesmo com o IT-TOOLS.

Antes de partirmos para o próximo tópico, vale lembrar:

Encoding NÃO É CRIPTOGRAFIA

Last updated