无涯教程-Go - Base64

70 阅读1分钟

我们可以在Go中编码String和url。 Go有带字节数组并转换为字符串编码的Encoder。

解码器获取编码后的值,并将其转换为原始字符串。

Go Base64示例

package main

import "fmt" import b64 "encoding/base64" func main() { data := "Learnfk@12345!@#$%^&*()" strEncode :=b64.StdEncoding.EncodeToString([]byte(data)) fmt.Println("value to be encode "+data) fmt.Println("Encoden value: "+strEncode)

fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">()</span><span class="pln">


fmt</span><span class="pun">.</span><span class="typ">Print</span><span class="pun">(</span><span class="str">"Value to be decode  "</span><span class="pun">+</span><span class="pln">strEncode</span><span class="pun">)</span><span class="pln">
strDecode</span><span class="pun">,</span><span class="pln"> _ </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">StdEncoding</span><span class="pun">.</span><span class="typ">DecodeString</span><span class="pun">(</span><span class="pln">strEncode</span><span class="pun">)</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Decoded value  "</span><span class="pun">+</span><span class="kwd">string</span><span class="pun">(</span><span class="pln"> strDecode</span><span class="pun">))</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">()</span><span class="pln">

url </span><span class="pun">:=</span><span class="pln"> </span><span class="str">"https://golang.org/ref/spec"</span><span class="pln">

fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"url to be encode  "</span><span class="pun">+</span><span class="pln">url</span><span class="pun">)</span><span class="pln">
urlEncode </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">URLEncoding</span><span class="pun">.</span><span class="typ">EncodeToString</span><span class="pun">([]</span><span class="kwd">byte</span><span class="pun">(</span><span class="pln">url</span><span class="pun">))</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Encoded url  "</span><span class="pun">+</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">

fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"value to be decode  "</span><span class="pun">+</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">
strDecode2</span><span class="pun">,</span><span class="pln">_ </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">URLEncoding</span><span class="pun">.</span><span class="typ">DecodeString</span><span class="pun">(</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">

fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Decoded value  "</span><span class="pun">+</span><span class="kwd">string</span><span class="pun">(</span><span class="pln">strDecode2</span><span class="pun">))</span><span class="pln">

}

输出:

value to be encode  Learnfk@12345!@#$%^&*()
Encoden value:  SmF2YVRwb2ludEAxMjM0NSFAIyQlXiYqKCk=

Value to be decode SmF2YVRwb2ludEAxMjM0NSFAIyQlXiYqKCk=Decoded value Ja-vaTpoint@12345!@#$%^&*()

url to be encode golang.org/ref/spec Encoded url aHR0cHM6Ly9nb2xhbmcub3JnL3JlZi9zcGVj value to be decode aHR0cHM6Ly9nb2xhbmcub3JnL3JlZi9zcGVj Decoded value golang.org/ref/spec

Process finished with exit code 0

参考链接

www.learnfk.com/go/go-base6…