Skip to content

Gocryptfs

雲端友善加密檔案系統

軟體分類 網路與資安 / 加密工具
軟體標籤
KVMAnimaker程式設計
開發廠商 Jakob Unterwurzacher
Stars
4.3k
Forks
295
License
MIT LICENSE
Version
v2.5.0
Update
2026-03-08
OS

產品說明

Gocryptfs 是一款現代化且高效能的加密檔案系統,採用 Go 語言編寫,基於 FUSE(Filesystem in Userspace)架構。它是 EncFS 的新一代繼承者,解決了舊有加密方案中的許多安全性弱點。

與 VeraCrypt 這類建立單一大檔案容器(Container-based)的加密軟體不同,Gocryptfs 採用的是 檔案層級加密 (File-based encryption)。這意味著每個檔案都是獨立加密儲存的。當您修改了一個加密資料夾中的小檔案時,只有該檔案對應的加密版本會發生變動,而非整個數 GB 的容器檔都需要重新上傳。這個特性使得 Gocryptfs 成為 Dropbox、Google Drive 或 OneDrive 等 雲端同步服務的最佳拍檔

核心特色:

  • 雲端同步友善:僅同步變更的加密檔案,節省頻寬與時間,避免重新上傳整個加密容器。
  • 高安全性:使用 AES-256-GCM 進行驗證加密(Authenticated Encryption),確保資料的機密性與完整性,並使用 Scrypt 防止暴力破解。
  • 高效能:利用 OpenSSL 的硬體加速功能,在現代 CPU 上提供極快的讀寫速度。
  • 反向模式 (Reverse Mode):可將一個現有的未加密資料夾,即時「掛載」為一個虛擬的加密視圖,方便備份至不可信的儲存空間(如雲端),而無需額外佔用硬碟空間。

常用指令

Gocryptfs 主要透過命令列 (CLI) 操作,使用邏輯非常直觀:先初始化一個空資料夾作為「密文區」,然後將其掛載到另一個資料夾作為「明文區」。

基礎操作流程

# 1. 建立兩個資料夾:cipher (存放加密後亂碼) 與 plain (操作用的明文區)
mkdir cipher plain

# 2. 初始化加密資料夾 (設定密碼)
gocryptfs -init cipher

# 3. 掛載加密資料夾 (輸入密碼後,plain 資料夾即成為可讀寫的入口)
gocryptfs cipher plain

# 4. 開始使用:在 plain 資料夾內放入檔案,cipher 資料夾會自動生成對應的加密檔
echo "Secret Data" > plain/secret.txt

# 5. 卸載 (結束使用)
# Linux:
fusermount -u plain
# macOS:
umount plain
參數選項功能說明範例
-init初始化一個新的加密目錄gocryptfs -init /path/to/cipher
-passwd修改加密密碼gocryptfs -passwd /path/to/cipher
-info顯示加密目錄的配置資訊gocryptfs -info /path/to/cipher
-reverse啟用反向模式 (唯讀加密視圖)gocryptfs -reverse /data /mnt/encrypted_view

進階應用 (反向模式備份)

如果您想備份電腦裡現有的 /home/user/photos 到雲端,但不想先複製一份再加密,可以使用反向模式:

# 建立一個空資料夾作為掛載點
mkdir /home/user/dropbox/encrypted_photos

# 將原本的照片資料夾掛載過去 (此時 encrypted_photos 內會看到加密後的檔案)
gocryptfs -init -reverse /home/user/photos
gocryptfs -reverse /home/user/photos /home/user/dropbox/encrypted_photos

# 現在,Dropbox 只會同步 encrypted_photos 裡的加密檔,而您的原始照片不受影響

使用小技巧:
Windows 使用者可以透過第三方相容工具 cppcryptfsSiriKali (圖形介面) 來存取 Gocryptfs 加密的資料夾,實現跨平台存取。


操作介面

Gocryptfs 的運作概念如下圖所示,它作為中間層,即時透明地加解密檔案: