测试代码:

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)
}

运行结果

转载请注明出处: http://bluesd7.com/蓝影闪电的随笔/ContentId/160/Go-Golang-GZIP压缩和解压函数

 
标签: Go, Golang, gzip 分类: Go, 后端开发, 原创

评论数量 (0)

    留下一个评论

    剩余2000个字符。 一共限制在2000个字符内.
    发送评论

    搜索

    关于我

    姓名:余钊

    英文名:Joshua

    现居:武汉

    Email: yuzhao_blue@163.com

    关注:架构, 全栈, SQL, 高性能, 高并发

    日历