GPG基本操作讲解

##什么是GPG

1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。

这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。

但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,

开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。GPG有许多用途,本文主要介绍文件加密。

至于邮件的加密,不同的邮件客户端有不同的设置,请参考Ubuntu网站的介绍。

本文的使用环境为Linux命令行。如果掌握了命令行,Windows 或

Mac OS 客户端,就非常容易掌握。GPG并不难学,学会了它,

从此就能轻松传递加密信息。建议读者一步步跟着教程做,

对每条命令都自行测试。

##GPG安装

1.源码安装(下载源码包) 

    ./configure
      make
      make install

  

2.yum源安装

        yum install gnupg

##GPG使用

查看帮助

gpg --help

生成非对称加密钥

  gpg --gen-key

列出所有的公钥

gpg -k

列出所有的私钥

     gpg -K

列出密钥

 gpg --list-keys

显示结果:

pub   2048R/A70E5CB4 2016-04-22 [expires: 2016-04-29]
uid                  doyle (test user) <[email protected]>
sub   2048R/9359FCC8 2016-04-22 [expires: 2016-04-29]
pub   2048R/93999488 2016-04-22 [expired: 2016-04-23]
uid                  doyle (123) <[email protected]>
pub   2048R/C1EA0413 2016-04-23 [expires: 2016-04-25]
uid                  doyle (doyle)   <[email protected]>
           sub   2048R/A23752C0 2016-04-23 [expires: 2016-04-25]

加密文件

gpg --recipient 标识名 --encrypt 文件名
     列如:gpg --recipient doyle --encrypt aa.txt

解密文件

       gpg --output 新文件名 --decrypt 加密文件名     
       列如:gpg --output ss --decrypt aa.gpg

密钥导入

gpg --import 密钥文件
        例如:gpg --import gpgkey.pub.asc

公钥删除

      gpg --delete-keys 标识名
      例如:
         gpg --delete-keys doyle
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub  2048R/A70E5CB4 2016-04-22 doyle (test user) <[email protected]>
Delete this key from the keyring? (y/N) y

私钥删除

      gpg --delete-secret-keys 标识名
例如: gpg --delete-secret-keys 93999488

签名认证

  gpg --sign-key id         用自己的私钥对B的公钥进行签名,以后就不用再确认
  例如:gpg --sign-key doyle

查看签名的所有密钥和被签名的密钥

gpg --list-sigs

编辑对密钥的信任度

gpg --edit-key id

数字签名

gpg -o 原文件和签名 -s  原文件

分离式签名

   gpg -o 目标文件 -ab  源文件

验证签名

     gpg --verify doc.sig [doc]
验证之前必须导入文件作者的公钥,对于分离式签名,最后还要加上原文件,即后面的doc。

例一:压缩加密

zip -e 目标文件名字 文件名字
unzip 文件名字   --------->输入正确密码解压

列二: 对文件进行加密

gpg -c abc.txt          对文件加密
gpg -d abc.txt.gpg   对文件解密

列三: 通过文件进行加密

   gpg -o abc.txt -d abc.txt.gpg    对文件解密到abc.txt (-o选项的位置是固定的)


***gpgcheck =1 会在yum安装的时候进行签名验证

如果yum.repogpgcheck=1 ,下面还要加一行是gppgkey 的位置

gpgkey的位置在:vim /iso/RPM-GPG-KEY-redhat-release

rpm --import /iso/RPM-GPG-KEY-redhat-release     将红帽系统的公钥导入到rpm数据库中***

时间: 2024-10-12 20:57:29

GPG基本操作讲解的相关文章

mysql基本操作讲解

1.登录mysql的几种方式: #mysql -uroot -p123456    使用socket连接登录: 查看socket文件位置    ps -aux | grep mysqld [[email protected] ~]# ps aux |grep mysqld root       941  0.0  0.1   6268  1416 ?        S    21:01   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datad

【SSH三大框架】Hibernate基础第六篇:多对一关联关系的映射、分析及添加、查询

这里举例子用的是:部门与员工的关系. 一个部门可以对应多个员工,这就是很明显的多对一关联关系. 我们需要建立两个实体类:员工(Employee).部门(Department) 员工类:Employee.java(在这里边我们增加了一个Department类型的属性,用来做关联) package cn.itcast.hibernate.domain; public class Employee { private int id; private String name; private Depar

Hibernate系列(六):多对一关联关系的映射、分析及添加、查询

这里举例子用的是:部门与员工的关系. 一个部门可以对应多个员工,这就是很明显的多对一关联关系. 我们需要建立两个实体类:员工(Employee).部门(Department) 员工类:Employee.java(在这里边我们增加了一个Department类型的属性,用来做关联) package cn.itcast.hibernate.domain; public class Employee { private int id; private String name; private Depar

链表讲解和基本操作练习附代码

以下都是单链表的基本操作,我都写了一遍,链表时间长不写一定会陌生,留给自己以后忘了看一眼,顺便给想学习链表的同学一点提示吧 首先先写头文件head.h,这里都是我定义好的函数分别有 这里的所有例子都是有头结点的链表,都是单链表操作 1)头插发建表 2)尾插法建表 3)打印链表 4)对链表赋值的时候进行插入排序 5)将链表翻转 6)找到链表倒数第n个元素 7)将两个链表连在一起 8)使单链表变成环链表 9)判断链表是否有环 10)将现有的链表排序进行插入排序(与4)不同,4)是在建立链表的时候进行

实例讲解C++ 双链表基本操作

1.概念 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.一般我们都构造双向循环链表. 结构图如下所示: 2.基本操作实例 DoubleList.cpp #include "stdafx.h" #include "DoubleList.h" #include <stdio.h> #include <malloc.h>

Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少) 好处:这样可能减少IO和CPU的消耗.节约内存空间 2.投影操作 对用的SELECT查询的目的列对象 优化方式:投影操作下推 目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少) 好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本

Linux学习笔记(一)——Linux系统概要及基本操作

一.  Linux系统概要 本章的主要内容是对Linux系统的结构和各组件的功能做一个简单的介绍,涉及到Linux系统各组件的相关概念.为了更好的了解Linux系统,首先对Linux系统的基本概念做一个简单的介绍. 1.1           Linux系统组成 Linux系统由四部分组成,各组件在Linux系统中既相对独立由相互联系,每个组件实现相对独立的功能,如果将各组件分开,就不是一个完整的Linux系统.各组件协调工作才能构成一个完整的Linux系统. Linux系统主要分为下面四部分:

html5标签video(播放器)学习笔记(二)-基本操作

subying 发布时间: 2014/12/01 23:59 阅读: 13008 收藏: 21 点赞: 3 评论: 0 摘要 本文介绍了html5标签video(播放器)的一些基本操作,主要是通过JS来监听video的事件和对video属性的读写来完成的,本文用了简单的例子进行引导说明,简单的JS代码讲解video的一些基本操作. 上一篇介绍了html5标签video(播放器)初始化需要做的一些工作,如何简单快速使用html5的播放器,本文将重点介绍如何用JS来操作video标签,也就是如何对v

【C++等级考试】 ___基本操作题

上篇讲解了步骤一 [C++等级考试] ___选择题 我很或多或少的知道如何应对选择题,给选择题留多少时间.现在小编讲讲 步骤二 应对大题 二.基本操作题(18分) 此类型题目不就是大家玩的 找你妹 游戏么,唯一不同的是该类题不仅要你找出错来而且要进行改正,其中的知识点还是不变的 本人在次列举一二,供大家参考参考 ◆友元函数的定义与声明要一致. Friendvoid Increment (MyClass& f) VoidIncrement(MyClass & f){f._i++} 友元函数调