测试代码:
package main
import (
"bytes"
"compress/gzip"
"io/ioutil"
"log"
)
func main(){
str:="Hello 蓝影闪电"
strGZIPEn:=GZIPEn(str)
log.Println(strGZIPEn) //加密
strGZIPDe,_:=GZIPDe(strGZIPEn)
log.Println(string(strGZIPDe)) //解密
}
//GZIPEn gzip加密
func GZIPEn(str string) []byte{
var b bytes.Buffer
gz := gzip.NewWriter(&b)
if _, err := gz.Write([]byte(str)); err != nil {
panic(err)
}
if err := gz.Flush(); err != nil {
panic(err)
}
if err := gz.Close(); err != nil {
panic(err)
}
return b.Bytes()
}
//GZIPDe gzip解密
func GZIPDe(in []byte) ([]byte, error) {
reader, err := gzip.NewReader(bytes.NewReader(in))
if err != nil {
var out []byte
return out, err
}
defer reader.Close()
return ioutil.ReadAll(reader)
}
运行结果