gpg加解密软件学习

简介:

想要获得更多的文章,可以关注我的微信ilanniweb。

为什么要学习gpg呢?因为要在Linux下把一个邮箱的密码加密,不让其他人看到该邮箱真正的密码。

为了不让其他人看到真正的邮箱密码,我们需要对其进行加密。

加密的方式是先把密码先写到一个文件A中,然后使用相关的加密软件对该文件A进行加密生成新的文件B。此时再删除文件A。

其他程序调用邮箱密码时,只调用加密后的文件B,同时对文件B进行解密。

加密我们使用的是gpg这个工具,下面我们来介绍下gpgp。

一、gpg是什么

GPG是GNU Privacy Guard或GnuPG的简称,它是一种用于加密、数字签章及产生非对称匙对的加密软件。

GPG使用非对称加密算法,安全程度比较高。所谓非对称加密算法,就是每一个用户都拥有一对密钥:公钥和私钥。其中,私钥由用户保存,公钥则由用户尽可能地分发给其他人,以便其他人与用户进行通信。

二、安装gpg

gpg的安装非常简单,在此我们以ubuntu 14.04 server为例。如下:

sudo apt-get -y install gnupg gnupg-agent rng-tools

clip_image001

centos6默认已经安装gpg,还需要我们在安装rng-tools就可以正常使用。如下:

yum -y install rng-tools

gpg安装完毕后,我们可以使用gpg –help命令查看gpg的使用方法。如下:

gpg –help

clip_image002

通过上图,我们可以看到gpg有很多选项。在此我们就不一一介绍了,下面文章中会介绍几个比较常用的命令。

三、创建gpg密钥对

在第一章,我们已经介绍了gpg使用非对称加密算法。非对称加密算法需要一对密钥对:一个公钥、一个私钥。

现在我们就来创建这对密钥,使用gpg –gen-key命令。如下:

gpg –gen-key

clip_image003

上面这张图中,我们一定要选择第一项,因为只有第一项用于加密,其他几项都是用于签名。

clip_image004

上面这张图中,我们根据实际情况进行选择密钥的有效期限。在此默认使用永久生效,永不过期。

clip_image005

上面这张图中,是配置密钥的加密长度。默认是2048bit,密钥的长度越长,加密的速度越慢。在此我们使用的是,默认配置。

clip_image006

这个填写该密钥的相关用户信息。

clip_image007

上图中,有两个地方需要记住。第一就是设置的私钥密码,第二就是生成密钥的密钥ID。

私钥密码是解密时需要的。密钥ID是对文件进行加密需要的。

四、加密文件

密钥对创建完毕后,我们现在来使用该密钥对一个文件A进行加密。

4.1 创建文件filea

首先创建文件filea,内容为ilannipassword。如下:

vi filea

ilannipassword

clip_image008

4.2 加密文件filea

文件filea创建完毕后,现在我们来使用gpg加密文件filea。使用gpg –e命令。如下:

gpg -e -r ilanni filea

这条命令的意思是,使用ilanni这个用户的密钥对文件filea进行加密。

clip_image009

通过上图,我们可以很明显的看出gpg已经把文件filea加密成新的文件filea.gpg。

现在我们来查看下加密后的文件filea.gpg,如下:

cat filea.gpg

clip_image010

通过上图,我们可以很明显的看出filea.gpg文件就是一堆乱码。这样就达到了加密的效果。

五、解密文件

文件filea被加密后形成新的文件filea.gpg,如果我们要知道加密前文件filea的内容的话,那么就需要我们来解密filea.gpg文件。

要解密gpg加密后的文件,我们需要使用ilanni这个用户的公钥和私钥。

在此我们是在ilanni这个用户密钥生成的机器A上进行解密的。如果在其他的机器B上来解密filea.gpg文件,那么就需要在B机器上把ilanni这个用户的私钥和公钥都导入进来。否则无法完成filea.gpg文件的解密。

解密filea.gpg,只需要使用gpg –d命令就行了。但是考虑到我们程序不需要人工进行交互,所以我们使用了如下的命令。

gpg –no-use-agent –passphrase=ilanni -q –no-tty -d filea.gpg

clip_image011

通过上图,我们可以很明显的看到filea.gpg文件已经被成功解密。

六、gpg参数介绍

gpg的参数比较多,下面就稍微介绍下,经常使用到的几个参数。

–gen-key:生成一副新的密钥对

–fingerprint:显示指纹

–send-keys:把密钥导出到某个公钥服务器上

–recv-keys:从公钥服务器上导入密钥

-a, –armor:输出经ASCII封装

-r, –recipient USER-ID:为收件者“某某”加密

-e, –encrypt:加密数据

-d, –decrypt:解密数据

-o, –output FILE:指定输出文件

–list-keys:显示所有公钥

–list-secret-key:显示所有私钥

–delete-keys:删除公钥

–delete-secret-keys:删除私钥

–delete-secret-and-public-keys:删除公钥和私钥

–import:导入公钥和私钥

–no-use-agent:不使用用户代理

–passphrase:私钥密码

–no-tty:在执行gpg时终端不显示信息

–quiet:使用安静模式

七、gpg的其他使用方法

下面列举下gpg常用参数的使用案例,如下。

7.1 gpg 查看所有公钥

gpg –list-key

clip_image012

7.2 gpg 查看所有私钥

gpg –list-secret-key

clip_image013

7.3 gpg删除密钥

gpg –delete-secret-keys 01BA7978 先删除私钥

gpg –delete-keys 73391FB6      再删除公钥

clip_image014

也可以使用一条命令全部删除,如下:

gpg –delete-secret-and-public-keys BFA7FF09

clip_image015

7.4 gpg导出公钥

gpg -a -o duanzhanling.asc –export BFA7FF09

clip_image016

7.5 gpg导出私钥

gpg -a -o duanzhanling-sec.asc –export-secret-key 0B7F4055

clip_image017

7.6 gpg导入密钥

导入私钥和公钥都用下面的命令gpg –import

gpg –import duanzhanling.asc   导入公钥

clip_image018

gpg –import duanzhanling-sec.asc   导入私钥

clip_image019

相关文章
|
3月前
|
Linux 应用服务中间件 网络安全
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
58 0
|
安全 数据安全/隐私保护
如何使用GPG 加密和解密文件
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情 大家好, 我是阿萨。又一个晴空万里的周一。祝大家本周都元气满满哦。 上次我们讲解了你知道PGP和GPG的区别 吗?有同学咨询如何使用 GPG 工具来加密文件。今天就来学习下如何安装 GPG 工具以及使用GPG 工具 的使用方法。 
692 0
如何使用GPG 加密和解密文件
|
16天前
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【8月更文挑战第3天】数字化时代下,信息安全至关重要。本文介绍如何用Python结合AES与RSA构建加密工具。AES因其高效加密大量数据的能力而被选中;RSA作为非对称加密算法,在密钥管理和数字签名上表现出色。先安装`pycryptodome`库,接着实现AES加密解密功能,并利用RSA加密AES密钥以安全传递。这套方案不仅速度快,还能有效保障数据安全,为开发者提供坚实的信息防护屏障。
26 5
|
3月前
|
Java 开发者
openssl win10安装 生成开发者 RSA 私钥 、公钥
openssl win10安装 生成开发者 RSA 私钥 、公钥
|
3月前
|
安全 数据安全/隐私保护
如何使用GPG工具加密和解密文件?
如何使用GPG工具加密和解密文件?
296 0
|
3月前
|
数据安全/隐私保护
如何使用GPG 加密/解密邮件?
如何使用GPG 加密/解密邮件?
142 0
|
3月前
|
算法 网络安全 数据安全/隐私保护
你知道PGP和GPG的区别 吗?
你知道PGP和GPG的区别 吗?
173 0
|
Java Shell Maven
JAVA实现PGP/GPG加解密加验签
JAVA实现PGP/GPG加解密加验签
2186 0
|
安全 数据安全/隐私保护
一分钟教会你如何使用Crypto模块RSA非对称加密,把重要的数据进行加密
随着互联网的迅速发展,信息安全变得尤为重要。数据加密是一个必不可少的环节。有时候,我们一不留神,可能数据就被人窃听到。今天跟大家分享一个数据加密的小案例。
210 0
|
数据安全/隐私保护
GPG密钥的生成与使用
GPG密钥的生成与使用
601 0
GPG密钥的生成与使用