49 lines
873 B
Go
49 lines
873 B
Go
package main
|
|
|
|
import (
|
|
"encoding/base32"
|
|
"encoding/base64"
|
|
"encoding/hex"
|
|
"fmt"
|
|
"log"
|
|
)
|
|
|
|
func base64Demo() {
|
|
msg := "Hello, 世界"
|
|
encoded := base64.StdEncoding.EncodeToString([]byte(msg))
|
|
fmt.Println(encoded)
|
|
decoded, err := base64.StdEncoding.DecodeString(encoded)
|
|
if err != nil {
|
|
fmt.Println("decode error:", err)
|
|
return
|
|
}
|
|
fmt.Println(string(decoded))
|
|
}
|
|
|
|
func base32Demo() {
|
|
str := "JBSWY3DPFQQHO33SNRSCC==="
|
|
dst := make([]byte, base32.StdEncoding.DecodedLen(len(str)))
|
|
n, err := base32.StdEncoding.Decode(dst, []byte(str))
|
|
if err != nil {
|
|
fmt.Println("decode error:", err)
|
|
return
|
|
}
|
|
dst = dst[:n]
|
|
fmt.Printf("%q\n", dst)
|
|
}
|
|
|
|
func hexDemo() {
|
|
const s = "48656c6c6f20476f7068657221"
|
|
decoded, err := hex.DecodeString(s)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Printf("%s\n", decoded)
|
|
|
|
}
|
|
func main() {
|
|
base64Demo()
|
|
base32Demo()
|
|
hexDemo()
|
|
}
|