假设我有笔记本电脑 A。假设在笔记本电脑 A 上,我使用以下命令加密文件:
gpg --symmetric my_file.txt
然后说我将那个加密文件安装在 USB 记忆棒上。
现在假设过了六个月,在此期间笔记本电脑 A 坏了,被笔记本电脑 B 取代。我是否能够使用密码(或许使用)解密笔记本电脑 B 上的文件gpg --decrypt
?
gpg --encrypt
如果我改用诸如或之类的命令,情况会改变吗gpg --encrypt --symmetric
?
答案1
密码就足够了。
在里面 Andrey Tyukin 的回答 我找到了这个例子:
#!/bin/bash echo "Some important content" > a.txt [ -f a.txt.gpg ] && rm a.txt.gpg [ -f b.txt ] && rm b.txt echo "secret" | gpg --batch --passphrase-fd 0 --output a.txt.gpg --symmetric a.txt echo "secret" | gpg --batch --passphrase-fd 0 --output b.txt --decrypt a.txt.gpg echo "------------------------- a.txt" cat a.txt echo "------------------------- b.txt" cat b.txt diff a.txt b.txt && echo "Files have the same content" ```
您可以使用“--encrypt”标志加密消息,该标志使用收件人的公钥加密消息,从而提供额外的安全性。
从 加密和解密文档:
要加密文档,请使用选项 --encrypt。您必须拥有预期收件人的公钥。软件需要将文档的名称作为输入进行加密,如果省略,则将其作为标准输入。加密结果将放置在标准输出上或使用选项 --output 指定的位置。除了加密文档外,还会压缩文档以提高安全性。
alice% gpg --output doc.gpg --encrypt --recipient [email protected] doc
--recipient 选项对每个收件人使用一次,并带有一个额外的参数,指定文档应加密的公钥。只有拥有与收件人公钥互补的私钥的人才能解密加密的文档。特别是,除非您在收件人列表中包含自己的公钥,否则您无法解密由您加密的文档。
要解密消息,请使用选项 --decrypt。您需要消息加密的私钥。与加密过程类似,输入要解密的文档,输出解密结果。
因此,要解密加密文件,需要收件人公钥之一的私钥。如果没有这样的密钥,您将无法解密,除非您将自己的公钥包含在收件人列表中。
答案2
如果我使用如下命令,情况会改变吗
gpg --encrypt --symmetric
?
结合这两个选项可以创建“可以通过密钥解密的消息或者密码”——只需要一个。
使用仅--symmetric
使用密码,并且只需要相同的解密的密码。
仅--encrypt
使用一个公钥,并且只需要该密钥对的密钥即可解密。