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:
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))
}
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:
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?
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