#encryption #git #git-repository #file-encryption #password #repo #decryption

nightly bin+lib git-simple-encrypt

使用单个密码加密/解密 git 仓库中的文件

5 个版本 (稳定)

1.3.0 2024年7月20日
1.2.1 2024年6月30日
1.1.1 2024年5月17日
1.0.0 2024年5月13日
0.1.0 2024年5月3日

#704 in 加密学

Download history 103/week @ 2024-04-27 31/week @ 2024-05-04 252/week @ 2024-05-11 44/week @ 2024-05-18 2/week @ 2024-05-25 2/week @ 2024-06-08 1/week @ 2024-06-15 215/week @ 2024-06-29 19/week @ 2024-07-06 131/week @ 2024-07-20 52/week @ 2024-07-27

每月207次下载

MIT 协议

39KB
868

git-simple-encrypt

英文 | 简体中文

非常简单易用 的 git 加密工具,可以在任何设备上使用单个 密码 加密/解密您的 git 仓库。支持部分文件加密和增量加密。

  • 为什么不使用 git-crypt?
    • 此项目更注重易用性而不是安全性。 单密码对称加密是我的底线。

[!警告]
此存储库不保证加密安全性以及向后兼容性。(请使用相同的主版本)

安装

有几种不同的安装方法,您可以选择其中任何一种。

  • 发行版 下载文件,解压并将它放在 C:\Windows\System32(如果您使用 Windows)或任何 路径 目录中。
  • 使用 bpm
    bpm i git-simple-encrypt -b git-se -q
    
  • 使用 scoop
    scoop bucket add absx https://github.com/absxsfriends/scoop-bucket
    scoop install git-simple-encrypt
    
  • 使用 cargo
    cargo +nightly install git-simple-encrypt
    
    cargo-binstall
    cargo binstall git-simple-encrypt
    

用法

git-se p                    # Set the password.
git-se add file.txt         # Add `file.txt` to the need-to-be-encrypted list.
git-se add mydir            # Add `mydir` to the need-to-be-encrypted list.
git-se e                    # Encrypt files in list in the current repository.
git-se d                    # Decrypt all files with extension `.enc`, `.zst.enc`.
git-se d 'src/*'            # Decrypt all encrypted files in `src` folder.

输入 git-se -hgit-se [子命令] -h 以获取更多信息。

注意

  • git add -A 在加密时将自动执行,因此请确保 .gitignore 被正确处理。
  • 请勿将带有 .zst.enc 后缀的文件及其所在的文件夹添加到加密列表中。
  • 要从加密列表中删除文件/目录,请编辑 git_simple_encrypt.toml

算法

graph TD;
    A[Key: 123] -- SHA3_224 --> 602bdc204140db016bee5374895e5568ce422fabe17e064061d80097 -- CUT --> 602bdc204140db016bee5374895e5568 --cipher--> Aes128GcmSiv  -- output--> 14a7dd2666afd854788c80f5518fea892491f23e72798d2fbc67bfc6259610d6f4
    B[Text: '6' * 60] --zstd--> 28b52ffd006045000010363601003f0116 --content--> Aes128GcmSiv
    CONST --NONCE--> Aes128GcmSiv
  • 如果zstd压缩产生相反的效果,请跳过压缩。
  • 解密所有扩展名为 .enc.zst.enc 的文件。

开发

  • 为测试,请使用 cargo test -- --test-threads=1

待办事项

  • zstd效果检查
  • 部分解密

依赖项

~11–22MB
~270K SLoC