gocryptfs 是一个使用 Go 开发的,加密的覆盖文件系统。gocryptfs 基于 [go-fuse](https://github.com/hanwen/go-fuse) FUSE 库和其 LoopbackFileSystem API 构建。gocryptfs 灵感来源于 [EncFS](http://www.oschina.net/p/encfs),修复了其安全问题,提供更好的性能。
gocryptfs 当前只支持 Linux 系统,以后会继续支持 OS X。
安装:
<pre class="brush:shell;toolbar: true; auto-links: false;">$ go get github.com/rfjakob/gocryptfs</pre>
使用:
<pre class="brush:shell;toolbar: true; auto-links: false;">$ 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</pre>
性能:
<pre class="brush:shell;toolbar: true; auto-links: false;">./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</pre>
![image](http://static.oschina.net/uploads/space/2016/0106/074303_dQS8_865233.jpg)