我正在使用linux,基本上我想使用密码对文件进行加密。
我曾尝试使用gpg -c myfile
进行加密,但是效果很好,它要求我输入密码并对其进行加密。但是它仅在加密时要求输入密码。
我想要一种加密文件的方法,如果要解密它,则必须提供与加密文件相同的密码。
如果有一个python库也可以工作,因为我可以将其放在脚本上。
答案 0 :(得分:0)
有几种方法可以在Linux下创建受密码保护的文件。
GnuPG
GnuPG可用于加密数据和创建数字签名。
要加密和解密data.txt文件,请使用gpg命令,如下所示:
$ gpg -c data.txt
$ gpg data.txt.gpg
mcrypt
mcrypt允许您类似于GnuPG创建受密码保护的文件
要加密和解密data.txt文件,请使用mcrypt命令,如下所示:
$ mcrypt data.txt
$ mcrypt -d data.txt.nc
OpenSSL
OpenSSl密码学工具包还可用于加密和解密文件和消息。
要加密和解密data.txt文件,请按以下方式使用openssl命令:
$ openssl enc -aes-256-cbc -salt -in data.txt -out data.txt.enc
$ openssl enc -aes-256-cbc -d -in data.txt.enc -out data.txt
答案 1 :(得分:0)
这是因为gpg-agent
是一个管理私钥的守护进程,该守护进程用作gpg的后端。默认情况下,它将密码短语缓存一段时间。您可以使用以下选项(来自man gpg-agent
)进行配置:
--default-cache-ttl n
Set the time a cache entry is valid to n seconds. The default is 600 seconds. Each time a cache entry is accessed, the entry's timer is reset. To set an entry's maximum
lifetime, use max-cache-ttl. Note that a cached passphrase may not evicted immediately from memory if no client requests a cache operation. This is due to an internal
housekeeping function which is only run every few seconds.
--max-cache-ttl n
Set the maximum time a cache entry is valid to n seconds. After this time a cache entry will be expired even if it has been accessed recently or has been set using gpg-
preset-passphrase. The default is 2 hours (7200 seconds).
清除缓存的一种方法是重新加载gpg-agent:gpgconf --reload gpg-agent
您可以使用gpg -c myfile && gpgconf --reload gpg-agent
来加密文件,然后将询问您是否尝试使用gpg myfile.gpg
解密文件的密码