仅为一个进程解密文件的程序

仅为一个进程解密文件的程序

我正在寻找一种程序来动态加密和解密文件(如果目录更好)并且仅通过 cli 进行一个进程。在我看来,它必须像 sudo 一样工作:如果你运行cat $crypted_file(也在超级用户模式下),你只能看到加密的字节;如果你运行program cat $crypted_file你可以读取文件。顶部将加密整个文件夹(或分区),只能使用program bash命令读取。存在这样的东西吗?

答案1

解决gpg方案是将文件解密到标准输出,并将其通过管道传输到您的程序。这需要程序读取stdin,但情况可能并非如此。我在我的系统上为此创建了一个别名:

$ gpg -q --output -
$ alias gpgcat='gpg -q --output -'

然后...

$ gpgcat encryptedfile.gpg | ./myprogram

根据 user236012 的评论,您可以编写以下 OpenSSL 替代方案:

$ echo "Hello, World!" > secrets.txt
$ openssl aes-256-cbc -a -salt -in secrets.txt -out secrets.txt.enc
$ openssl aes-256-cbc -d -a -in secrets.txt.enc
Hello, World!

您可能还需要最后一个别名,因为您对解密感兴趣:

$ alias opensslcat='openssl aes-256-cbc -d -a -in'

(请注意,这定义了您可能不想使用的密码和盐选项)

还要记住,许多程序接受-代表标准输入的文件参数。例如:

$ gpgcat MyBigSecret.gpg | gzip - > NoMoreSecret.gz

在这里,gzip获取了该文件的未加密版本,您可以通过解压来读取结果:gzip -dc NoMoreSecret.gz

相关内容