在 OS X 上加密单个文件

信息安全 加密 密码学 文件加密 苹果系统
2021-09-10 12:44:16

我即将实现无纸化,我想保护我扫描的文档。用例是我将扫描纸质文档,加密每个文件,并将它们存储在本地和各种备份目的地。我一直在研究如何保护这些文件的各种想法,但我需要更多指导。以下是我正在尝试实施的系统的详细信息:

  • 保护在文件级别。如果有人拿到文件,我希望他们无法使用它。
  • 传输安全性超出范围,假定由传输文件的任何系统处理。
  • 这些文件将在 Mac 上加密。
  • 解密应该尽可能广泛可用。例如,如果我想在我的 iPhone 上查看文件,我应该能够使用现有的库来编写一个应用程序来执行此操作。

我已经研究过在 OS X 中使用安全和加密库来为此创建一个轻量级工具。我是一名软件工程师,所以我对编写自己的应用程序非常满意,但我对安全性不熟悉。如果不咨询比我了解更多的人,我会在做出安全决定时感到不舒服。

  • 我曾考虑过 AES,但后来我阅读了有关填充和加密模式的信息,但我迷失了选择的细节。
  • 我考虑过 GnuPG,但我不喜欢必须下载单独的工具的想法。是的,它是开源的,但如果我可以使用操作系统内置的功能,那将是首选。

有推荐的方法吗?

1个回答

您可以像这样使用 openssl:

openssl enc -e -aes-256-cbc -salt -a -in /file/to/encrypt -out /file/encrypted

将 -e 替换为 -d 以解密。它应该可以在 OS X 和 Linux 上运行,但是在其他系统上不知道。man openssl 列出选项和可用密码。

编辑:看起来 openssl 对密钥推导应用了几轮 MD5(不是最好的散列算法)。这使得蛮力攻击更容易。

更好的解决方案可能是 GnuPG(我知道您顺便要求提供预装工具):

加密:

gpg -c -a --cipher-algo AES256 /file/to/encrypt

解密:

gpg /file/to/decrypt