base64 编码原理和实现方法
base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,base64 就是一种基于64个可打印字符来表示二进制数据的方法。
base64 编码是从二进制到字符的过程,可用于在 HTTP 环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
golang 中 base64 的编码和解码可以用内置库 encoding/base64。
示例如下:
package main import ( "encoding/base64" "fmt" "log" ) func main() { input := []byte("hello world") fmt.Println("原始内容:" + string(input)) // 演示base64编码 encodeString := base64.StdEncoding.EncodeToString(input) fmt.Println("编码:" + encodeString) // 对上面的编码结果进行base64解码 decodeBytes, err := base64.StdEncoding.DecodeString(encodeString) if err != nil { log.Fatalln(err) } fmt.Println("解码:" + string(decodeBytes)) // 如果要用在url中,需要使用 URLEncoding uEnc := base64.URLEncoding.EncodeToString([]byte(input)) fmt.Println("url编码:" + uEnc) uDec, err := base64.URLEncoding.DecodeString(uEnc) if err != nil { log.Fatalln(err) } fmt.Println("url解码:" + string(uDec)) }
运行结果如下:
原始内容:hello world 编码:aGVsbG8gd29ybGQ= 解码:hello world url编码:aGVsbG8gd29ybGQ= url解码:hello world
Hash(哈希或散列)算法是非常基础和重要的计算机算法,它能将任意长度的二进制明文映射为较短的固定长度的二进制Hash值,并且不同的明文很难映射为相同的Hash值。SHA-256 是一种 Hash 算法,在比特币源 ...