golang zip 加密_使用golang生成一个加密的zip包

用户下载数据时,将数据打包成zip包,并给zip包添加上密码。

测试数据如下:

d405209bf992d28f2a64f4cd87632811.png

处理:

1788003a74be2761287550991b9db44d.png

完整代码如下:

package mainimport ("archive/zip""io""log""os""path/filepath""strings"ezip "github.com/alexmullins/zip")func main() {if err := EncryptZip("./data", "./example.zip", "golang"); err != nil {log.Fatal(err)}}// src can be a single file or a directoryfunc EncryptZip(src, dst, passwd string) error {zipfile, err := os.Create(dst)if err != nil {return err}defer zipfile.Close()archive := ezip.NewWriter(zipfile)defer archive.Close()filepath.Walk(src, func(path string, info os.FileInfo, err error) error {if err != nil {return err}header, err := ezip.FileInfoHeader(info)if err != nil {return err}header.Name = strings.TrimPrefix(path, filepath.Dir(src)+"/")if info.IsDir() {header.Name += "/"} else {header.Method = zip.Deflate}// 设置密码header.SetPassword(passwd)writer, err := archive.CreateHeader(header)if err != nil {return err}if !info.IsDir() {file, err := os.Open(path)if err != nil {return err}defer file.Close()_, err = io.Copy(writer, file)}return err})return err}

解压:

620c591abeb74f3e27bcbadd64358fc5.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gocryptfs 是一个使用 Go 开发的,加密的覆盖文件系统。gocryptfs 基于 go-fuse FUSE 库和其 LoopbackFileSystem API 构建。gocryptfs 灵感来源于 EncFS,修复了其安全问题,提供更好的性能。gocryptfs 当前只支持 Linux 系统,以后会继续支持 OS X。安装:$ go get github.com/rfjakob/gocryptfs使用:$ mkdir cipher plain $ $GOPATH/bin/gocryptfs --init cipher   [...] $ $GOPATH/bin/gocryptfs cipher plain   [...] $ echo test > plain/test.txt $ ls -l cipher   total 8   -rw-rw-r--. 1 user  user   33  7. Okt 23:23 0ao8Hyyf1A-A88sfNvkUxA==   -rw-rw-r--. 1 user  user  233  7. Okt 23:23 gocryptfs.conf $ fusermount -u plain性能:./benchmark.bash gocryptfs v0.3.1-30-gd69e0df-dirty; on-disk format 2 PASS BenchmarkStreamWrite-2       100      12246070 ns/op      85.63 MB/s BenchmarkStreamRead-2        200       9125990 ns/op     114.90 MB/s BenchmarkCreate0B-2        10000        101284 ns/op BenchmarkCreate1B-2        10000        178356 ns/op       0.01 MB/s BenchmarkCreate100B-2       5000        361014 ns/op       0.28 MB/s BenchmarkCreate4kB-2        5000        375035 ns/op      10.92 MB/s BenchmarkCreate10kB-2       3000        491071 ns/op      20.85 MB/s ok      github.com/rfjakob/gocryptfs/integration_tests  17.216s 标签:文件加密

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值