1. base64

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。Go 的 encoding/base64 提供了对base64的编解码操作。

  1. package main
  2. import (
  3. "encoding/base64"
  4. "fmt"
  5. "log"
  6. )
  7. func main() {
  8. str := "www.5lmh.com"
  9. fmt.Printf("string : %v\n", str)
  10. input := []byte(str)
  11. fmt.Printf("[]byte : %v\n", input)
  12. // 演示base64编码
  13. encodeString := base64.StdEncoding.EncodeToString(input)
  14. fmt.Printf("encode base64 : %v\n", encodeString)
  15. // 对上面的编码结果进行base64解码
  16. decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
  17. if err != nil {
  18. log.Fatalln(err)
  19. }
  20. fmt.Printf("decode base64 : %v\n", string(decodeBytes))
  21. fmt.Println()
  22. // 如果要用在url中,需要使用URLEncoding
  23. urlencode := base64.URLEncoding.EncodeToString([]byte(input))
  24. fmt.Printf("urlencode : %v\n", urlencode)
  25. //URLEncoding
  26. urldecode, err := base64.URLEncoding.DecodeString(urlencode)
  27. if err != nil {
  28. log.Fatalln(err)
  29. }
  30. fmt.Printf("urldecode : %v\n", string(urldecode))
  31. }

输出结果:

  1. string : www.5lmh.com
  2. []byte : [119 119 119 46 53 108 109 104 46 99 111 109]
  3. encode base64 : d3d3LjVsbWguY29t
  4. decode base64 : www.5lmh.com
  5. urlencode : d3d3LjVsbWguY29t
  6. urldecode : www.5lmh.com