加密单个文件并即时读取/编辑

AF7*_*AF7 5 kde encryption encfs

我有一个要加密的文本文件。我可以使用任何常用软件轻松做到这一点。但是,我希望能够点击它,提供密码,并且能够阅读、编辑和关闭它。全部来自 GUI,它应该是 KDE 兼容的,可能编辑器应该是 Kate。理想情况下,这应该在单个 KRunner 调用中可用。替代 CLI 方法是可以的,但应包含在单个命令/函数/别名中。

一种可能性是创建一个加密文件夹。然后仅在访问时挂载文件夹,并在文本编辑器关闭后立即卸载,所有这些都在单个 CLI 命令中。对我来说,它看起来有点骇人听闻,我更愿意只从 KRunner 接电话。

总结一下,稍微关注一下ArchWiki

  • 我想保护单个文件,以防我的 PC 被盗。当然,专业的数据挖掘者最终会得到它,我接受这一点。
  • 该文件应该可以通过即时(按需)密码访问(读/写访问
  • GUI 方法是首选,但 CLI 方法也可以,只要它们可以用 .desktop 文件调用(通过 KRunner 访问)
  • 我没有首选的加密方法,只要它相当快速、安全和开源
  • 只要内容不可访问,加密文件夹的结构和文件名(如果这是唯一的方式)可以是透明的。
  • 任何加密方法都可以接受,只要验证密钥不需要几分钟,例如

Xen*_*050 3

对于一次仅一个文件或非常偶然的文件,我认为使用 EncFS/eCryptFS/dm-crypt/LUKS 的整个加密驱动器或主目录将是过度杀伤力(但在被盗的情况下会很好地工作)。

使用 bash 函数来解密、编辑、重新加密的解决方案听起来更像是您正在寻找的。使用gpg它是因为它默认安装在我见过的几乎所有 Linux 上,并且已经存在了几十年,而且应该还有几十年,所以看起来适合长期存档。像这样的东西可以放入.bashrc文件中并在终端中使用,或者合并到文件管理器的“右键单击”菜单中也应该可以工作(我对 KDE 不太熟悉,无法做到这一点,但如果你是的话,它应该'不会非常困难)。

这些快速的小函数将第一个参数$1作为文件名进行解密/tmp/gpg-edit.out(可以使用 tmpfs/ramdisk 以获得更好的安全性),使用gedit(或您最喜欢的编辑器)进行编辑,并在完成编辑后重新加密文件。他们使用“密码文件”,其中仅读取第一行并用作密码,因此应将其保存在安全的地方(也许是 tmpfs/ramdisk),但您可以省略它,并且gpg每次都会询问您密码。

edit-gpg() {
gpg -v --no-use-agent --passphrase-file=/path/to/keyfile --output "/tmp/gpg-edit.out" "$1" &&
gedit "/tmp/gpg-edit.out" &&
gpg -v --no-use-agent --cipher-algo AES256 --passphrase-file=/path/to/keyfile --output "$1" -c "/tmp/gpg-edit.out" &&
rm "/tmp/gpg-edit.out"
}
Run Code Online (Sandbox Code Playgroud)

未来的待办事项将包括检查“/tmp/gpg-edit.out”文件是否已存在(如果gpg存在,现在将要求覆盖)。
或者使用随机输出文件,以便您可以一次编辑多个文件。目前,一次只有一个。
省略--no-use-agent应该让它使用 gpg 的 GUI 密码输入框,但上次我省略该选项时,它总是使用GUI 框并忽略--passphrase-file选项。

另一个短函数最初可以使用相同的密码文件加密文件:

crypt-gpg() { 
gpg -v --no-use-agent --cipher-algo AES256 --passphrase-file=/path/to/keyfile -c "$1" &&
rm "$1"
}
Run Code Online (Sandbox Code Playgroud)