赞
踩
如果有读者对于加解密的技术没有丝毫认识,可能会对gpg的使用有一些疑问,请查看加解密技术优点与局限性分析
写作起源:笔者看了网上很多gpg使用的教程,发现有许多文章不明所以,解释不够到位,对初学者的学习造成了很大的困难,所以我决定来写一篇针对于初学者的教程。
GPG(GNU Privacy Guard)是一个用于加密、签名和验证文件的开源加密工具。它可以帮助用户保护他们的数据免受未经授权的访问和篡改。您可以使用GPG来加密和签名电子邮件、文件和文本消息,以确保它们的安全性和完整性。
打开终端,输出以下命令进行下载:
1|sudo apt-get install gnupg
接着跟随提示完成下载即可
然后输入
1|gpg --help
既可以检验是否下载完成,还可以大致明白gpg的用法。
之后会出现一大段文字,介绍一些命令的基本用法。
接下来我们依次为大家展现一些常用的代码。
输出以下代码
1|gpg --gen-key
之后会依次跳出
真实姓名:
电子邮箱地址:
依次输入后,设置密码密钥生成成功。
注意:真实姓名不一定是真实的
生成成功后会跳出以下界面:
pub rsa【】 2023-12-22【】 【有效至:】
【一堆乱码】
uid 【用户名】<邮箱>
sub rsa【】 2023-12-21【】 【有效至:】
以上的菜单有几个知识需要和大家解释:
pub代表主公钥,rsa是默认的密码类型,后面跟的数字为密码的密码强度。
【一堆乱码】是的用户名(uid)的hash码。
sub代表子公钥,第一次创建子公钥为空。
1|gpg --full-generate-key
接下来我们会看到以下的内容
请选择您要使用的密钥类型:
(1) RSA 和 RSA (默认)
(2) DSA 和 Elgamal
(3) DSA(仅用于签名)
(4) RSA(仅用于签名)
(14)卡中现有密钥
您的选择是?
之后是密码强度的设置:
RSA 密钥的长度应在 1024 位与 4096 位之间。
您想要使用的密钥长度?(3072)
请求的密钥长度是 3072 位
之后是密码有效期:
请设定这个密钥的有效期限。
0 = 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0)
密钥永远不会过期
这些内容正确吗? (y/N) y
最后输入y,之后会跳到输出真实姓名和邮箱的位置了。
如果要查看用户和密码信息,请输入以下代码:
1|gpg --list-keys
出现的界面和上面的界面是非常相似的,上面不仅有本机的用户的公钥,还有从外部导入的公钥。
如果想要查看本机用户的gpg,请输入:
1|gpg --list-secret-keys
这里会出现类似于下面的界面
sec
uid
ssb
与上面的同理:
sec是主私钥。
ssb是子私钥。
现在开始进入密钥配置,输出以下代码:
1|gpg --export -a "Your uid" > public_key.asc
请一定注意:不要忘记每一个空格
解释:这个命令将导出您指定的用户名(Your uid)的公钥,并将其保存到一个名为public_key.asc(文件名可以自定义,后缀不要改)的文件中。-a选项是将公钥转换为ASCII码格式,以便更容易地与他人分享。
无论如何公钥需要分享给其他人的,公钥可以放到完全信任的服务器上,这里我不详细叙述。
A将公钥分享给B后,B需要将公钥导入进gpg中,输出以下代码:
1|gpg --import public_key.asc
提醒:私钥必须要自己保管好,不要外传。
如果想要备份一份私钥防止丢失
输出以下代码:
1|gpg --export-secret-keys -a "Your uid" > private_key.asc
将"Your uid"替换为您的用户名,这将导出您指定的用户名的私钥,并将其保存到名为private_key.asc的文件中。-a选项将私钥转换为ASCII格式。
导出私钥时,请务必妥善保管private_key.asc文件。私钥的泄露可能会导致严重的安全问题。
前情提要:A将公钥传给B,B将公钥导入到自己的密钥环中。
1|gpg --recipient "A's uid" --encrypt message.txt
运行代码之后,会生成一个加密后的文件message.txt.gpg。
1|gpg --decrypt message.txt.gpg
这样会把文件还原到message.txt.,其中包含原始的、未加密的文本内容。
1|gpg --encrypt -r "B's UID" -o encrypted_file.gpg message.txt
释:将“A’s uid”替换为A的用户名,message.txt替换为A要加密的文件名,最后加密后的文件输出为"encrypted_file.gpg"。上述命令将使用A的私钥对文件进行加密。
如果想进行签名那么请输出以下代码:
1|gpg --encrypt --sign -r "B's UID" -o encrypted_file.gpg message.txt
gpg --decrypt -o decrypted_file message message.txt.gpg
释:将“message.txt.gpg”替换为您要解密的文件名。上述命令将使用您的公钥对文件进行解密,并将解密后的文件保存为“decrypted_file”。
gpg的使用对于理解加解密过程,理解数字签名和身份验证等相关知识有重要作用。
用户实际进行加解密操作,对维护数据安全有重要作用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。