first commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package baseutils
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"compress/flate"
|
||||
"compress/zlib"
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/micro/go-micro/util/log"
|
||||
)
|
||||
|
||||
// UnzipByteArray zip解压缩
|
||||
func UnzipByteArray(data []byte) ([]byte, error) {
|
||||
reader, err := zlib.NewReader(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
retBytes, err := ioutil.ReadAll(reader)
|
||||
defer reader.Close()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return retBytes, nil
|
||||
}
|
||||
|
||||
// CompressByteArray zip压缩
|
||||
func CompressByteArray(data []byte) []byte {
|
||||
var in bytes.Buffer
|
||||
w := zlib.NewWriter(&in)
|
||||
w.Write(data)
|
||||
w.Close()
|
||||
return in.Bytes()
|
||||
}
|
||||
|
||||
// 进行zlib压缩
|
||||
func DoZlibCompress(src []byte) []byte {
|
||||
var in bytes.Buffer
|
||||
w, _ := zlib.NewWriterLevel(&in, zlib.DefaultCompression)
|
||||
w.Write(src)
|
||||
w.Close()
|
||||
return in.Bytes()
|
||||
}
|
||||
|
||||
func AE(msg []byte) []byte {
|
||||
ml := len(msg)
|
||||
var pwd []byte
|
||||
for i := 0; i < ml; i++ {
|
||||
S := 0xAE ^ msg[i]
|
||||
pwd = append(pwd, S)
|
||||
}
|
||||
return DoZlibCompress(pwd)
|
||||
}
|
||||
|
||||
// DeflateZip DeflateZip
|
||||
func DeflateZip(data []byte) []byte {
|
||||
// 一个缓存区压缩的内容
|
||||
buffer := bytes.NewBuffer(nil)
|
||||
|
||||
// 创建一个flate.Writer
|
||||
flateWrite, err := flate.NewWriter(buffer, flate.BestCompression)
|
||||
if err != nil {
|
||||
log.Info("DeflateZip err = ", err)
|
||||
return nil
|
||||
}
|
||||
defer flateWrite.Close()
|
||||
flateWrite.Write(data)
|
||||
flateWrite.Flush()
|
||||
|
||||
return buffer.Bytes()
|
||||
}
|
||||
|
||||
// DeflateUnZip DeflateUnZip
|
||||
func DeflateUnZip(data []byte) []byte {
|
||||
// 一个缓存区压缩的内容
|
||||
flateReader := flate.NewReader(bytes.NewReader(data))
|
||||
defer flateReader.Close()
|
||||
// 输出
|
||||
retBytes, err := ioutil.ReadAll(flateReader)
|
||||
if err != nil {
|
||||
log.Info("DeflateUnZip err = ", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
return retBytes
|
||||
}
|
||||
Reference in New Issue
Block a user