使用GnuPG进行加密与解密
什么是公钥和私钥
在GnuPG中,公钥和私钥是成对使用的,用于加密、解密和签名操作。
- 公钥(Public Key):可以公开给任何人,用于加密数据。加密后的数据只能用对应的私钥解密。
- 私钥(Private Key):必须保密,只能由密钥持有者掌握。用于解密由公钥加密的数据,并用于创建数字签名。
生成密钥对
要使用GnuPG,首先需要生成一对密钥:
gpg --full-generate-key
按照提示选择加密算法和密钥长度,然后输入您的名字、邮箱地址和密码。GnuPG会生成一对公钥和私钥,并存储在您的密钥环中。
导出和导入密钥
导出公钥和私钥
为了与他人共享公钥或备份私钥,可以使用以下命令导出:
导出公钥:
gpg --export --armor [key-id] > public_key.asc
导出私钥:
gpg --export-secret-keys --armor [key-id] > private_key.asc
导入公钥和私钥
在另一台设备上使用密钥时,可以导入这些密钥文件:
导入公钥:
gpg --import public_key.asc
导入私钥:
gpg --import private_key.asc
使用公钥加密文件
要加密文件,您需要接收者的公钥:
gpg --output encrypted_file.gpg --encrypt --recipient [recipient_key_id] file_to_encrypt
例如:
gpg --output example.txt.gpg --encrypt --recipient 7C30B96CF11F5118BB73B8E0F94F2EC6336CD97E example.txt
这会生成一个加密文件 example.txt.gpg
,只有拥有相应私钥的人才能解密。
使用私钥解密文件
接收者收到加密文件后,可以使用私钥解密:
gpg --output decrypted_file --decrypt encrypted_file.gpg
例如:
gpg --output example.txt --decrypt example.txt.gpg
解密后可以获得原始文件 example.txt
。