日常处理敏感信息时,在存储、传输方面都有加解密的需求。使用非对称加密算法的方式来保证信息的安全是不错的选择,在kali中就提供了这样的工具——gpg来实现这种方式。
一、实验环境
kali linux gpg(kali系统自带) asdf.c(实验文件,随意一个都可)
二、操作过程:
A、 创建密钥对,用来发送加密数据和进行解密数据的密钥。执行gpg命令会在主目录下创建一个.gnupg子目录
执行gpg命令
.gnupg子目录生成情况
我使用的是root用户,因此会在~目录下找到.gnupg(隐藏)文件。若是其他用户,此文件夹应在/home目录下对应的各用户的主目录下可找到。
B、 执行gpg –gen-key生成密钥
输入该密钥的使用者信息用来标志密钥
(GnuPG needs to construct a user ID to identify your key)
gpg采集完用户信息后在弹出设置私钥的输入框,输入能记得住的私钥信息两次即可.此私钥信息最好越复杂越好,攻击者能破解的可能性就会越低,加密的信息就会越安全。
输入私钥信息
C、在上一步操作完后,gpg会自动生成公钥信息
生成公钥标识
D、公钥标识生成后,需将公钥信息保存到pub.key文件中,发送给对方。对方使用公钥来加密文件,只有有私钥(在上面输入框中输入的信息)的使用者才能解开公钥加密的文件的密文。
gpg -kv查看已保存的公共密钥
E、执行gpg –-import pub.key可查看保存好的公钥信息,gpg可使用公钥标识信息来加密文件
保存的公钥信息
F、执行gpg -ea -r 1A6BF239B19C9405 asdf.c可加密asdf.c文件。 -e代表加密 -a代表ASCII格式,1A6BF239B19C9405密钥标识。此命令执行完后会在当前目录下生成asdf.c.asc加密后的文件。
gpg加密asdf.c文件
asdf.c.asc加密后的文件内容
G、执行gpg -o asdf -d asdf.c.asc命令并输入私钥信息,即可解密asdf.c.asc文件的内容,并将解密后的内容保存到asdf文件中
解密成功
加密后和解密后的文件信息对比
H、不输入私钥信息,解密失败的报错
输入错误的私钥信息后,会提示共有三次输入错误密钥信息的机会
开始第二次输入私钥信息
三次私钥信息都输错后,便报错退出解密
三、总结
gpg有保存密钥对的功能,只需一次解密成功后(即匹配到公钥和私钥对),gpg解密同一公钥加密后的内容无需再输入私钥信息。