gpg加密和解密

linux:gpg加密和解密

  • 1 创建密钥
  • 2 查看私钥
  • 3 导出公钥
  • 4 导出私钥
  • 5 导入秘钥
    • 5.1 公钥
  • 6 公钥加密
  • 7 私钥解密

创建密钥

gpg --gen-key

你要求输入一下内容,这些内容,基本英文,还是很好明白

[email protected]:~# gpg --gen-key
gpg (GnuPG) 1.4.11; Copyright (C) 2010 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.

gpg: directory `/root/.gnupg‘ created
gpg: new configuration file `/root/.gnupg/gpg.conf‘ created
gpg: WARNING: options in `/root/.gnupg/gpg.conf‘ are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg‘ created
gpg: keyring `/root/.gnupg/pubring.gpg‘ created
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection?
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <[email protected]>"

Real name: chenshake
Email address: [email protected]
Comment:
You selected this USER-ID:
    "chenshake <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key AEAA16F3 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/AEAA16F3 2013-10-21
      Key fingerprint = B93B 05F8 9D63 5464 6DEE  6A08 EB9E D2BB AEAA 16F3
uid                  chenshake <[email protected]>
sub   2048R/02B4038D 2013-10-21
就是上面这个过程

在这个生成密钥的过程中,有个步骤很重要,就是生成内存随机数,命令如下:

dd if=/dev/zero of=test.dbf bs=9000 count=1000k .直到生成key为止

查看私钥

# gpg -k
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/AEAA16F3 2013-10-21
uid                  chenshake <[email protected]>
sub   2048R/02B4038D 2013-10-21

查看公钥

# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/AEAA16F3 2013-10-21
uid                  chenshake <[email protected]>
sub   2048R/02B4038D 2013-10-21

导出公钥

gpg -o chenshake.gpg -a --export chenshake

其中chenshake为用户ID
chenshake.gpg为导出的公钥文件

导出私钥

gpg -o chenshake-private.gpg --export-secret-keys chenshake

导入秘钥

公钥和私钥的导入,都是一样。

gpg --import filename

公钥

(另外一台机器)

当然你需要通过scp把公钥复制到远程的机器

# gpg --import chenshake.gpg
gpg: directory `/root/.gnupg‘ created
gpg: new configuration file `/root/.gnupg/gpg.conf‘ created
gpg: WARNING: options in `/root/.gnupg/gpg.conf‘ are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg‘ created
gpg: keyring `/root/.gnupg/pubring.gpg‘ created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key AEAA16F3: public key "chenshake <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

你也可以查看到导入的公钥

# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/AEAA16F3 2013-10-21
uid                  chenshake <[email protected]>
sub   2048R/02B4038D 2013-10-21

公钥加密

一个文件,我这里是加密cobbler.ks 这个文件,加密后是 cobbler.ks.gpg文件,需要私钥才能查看。

# gpg -o cobbler.ks.gpg -er chenshake cobbler.ks
gpg: 02B4038D: There is no assurance this key belongs to the named user

pub  2048R/02B4038D 2013-10-21 chenshake <[email protected]>
 Primary key fingerprint: B93B 05F8 9D63 5464 6DEE  6A08 EB9E D2BB AEAA 16F3
      Subkey fingerprint: FCCA 50DD C98D 644E 00FB  804C 4CD2 9544 02B4 038D

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

私钥解密

私钥查看 cobbler.ks.gpg

# gpg -o cobbler.ks -d cobbler.ks.gpg 

You need a passphrase to unlock the secret key for
user: "chenshake <[email protected]>"
2048-bit RSA key, ID 02B4038D, created 2013-10-21 (main key ID AEAA16F3)

gpg: gpg-agent is not available in this session
gpg: encrypted with 2048-bit RSA key, ID 02B4038D, created 2013-10-21
      "chenshake <[email protected]>"

需要你输入你当初创建秘钥的时候设置的那个密码。这个时候,你就可以查看到加密的文件。

注明:这篇文章是转载,但是说明了最重要的一个步骤!

时间: 2024-11-05 23:32:40

gpg加密和解密的相关文章

GPG加密解密与实际应用

主要内容:GPG加密解密的基本操作与少量应用. 简介 安装 生成密钥操作过程 对密钥的一些操作 查看密钥 导出密钥 导入密钥 注销密钥 删除密钥 编辑密钥 签名 修改密码 等-- 加密文件 解密文件 一些参考 简介 GPG--GnuPG,是一种非对称密钥加密工具软件,主要用于加密解密,进行数字签名等.GPG可以生成用于加密解密.进行数字签名.数据指纹的非对称密钥. 安装 目前UBUNTU默认已经安装了GPG,编译安装可参考中文版Howto中的安装一节.注意国际版和美国版的区别. 生成密钥操作过程

安全与加密-使用gpg实现加密与解密

对称加密算法 加密和解密使用同一个密钥 常见的算法: DES,3DES,AES,Blowfish,Twofish,IDEA,RC6,CAST5 ? 特性: 1.加密.解密使用同一个密钥,效率高 2.将原始数据分割成固定大小的块,逐个进行加密 ? 缺陷: 1.密钥过多 2.密钥分发 3.数据来源无法确认 非对称加密算法 公钥加密:密钥是成对出现 ? 公钥:公开给所有人:public key ? 私钥:自己留存,必须保证其私密性:secret key ? 特点:用公钥加密数据,只能使用与之配对的私钥

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性

第六章 加密与解密

6.1 什么是加密和解密? 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密). 6.2 加密技术二元素:算法和密钥 算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的官方的步骤: 密钥是用来对数据进行编码和解密的一种算法. 在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通信安全,使得未授权的用户即使获得了已加密的信息,但因不知解密方法,仍然无法了解信息内容. 6.3 为什么要加密?

加密和解密技术基础、PKI及创建私有CA

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说

加密和解密技术基础与OpenSSL

加密和解密技术基础与OpenSSL 加密和解密技术基础(01) 1.了解Linux  service  and  securityOpenSSL:为网络通信提供安全及数据完整性的一种安全协议 2.一般都是C/S通信,此种通信客户端有什么特性?服务端有什么特性呢?(1)两台主机上的通信方式?主机通信实际是进程间通信.通信方式:socket (套接字)ip:port          客户端cip:port<-->服务器端 scip:port(2)如何让客户知道自己的主机和端口呢?把某些众所周知的

加密、解密以及OpenSSL建立私有CA

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.大多数开源程序,商业软件加密核心都是基于openssl实现的. 数据安全性的基本法则: (1)数据的保密性:信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密.加密的过程需要用到密钥来加密数据然后再解密.没有了密钥,就无法解开加密的数据.数据加密之后,只有密钥要用一个安全的方法传送.加密过的数据可以公开地传送. (2)完整性:

基于CentOS 6.5 &nbsp; 加密、解密、openssl的基本应用及CA的实现过程

一.加密和解密 1.加密方式有:对称加密.单向加密.公钥加密 对称加密: 工具:gpg openssl enc 加密:openssl enc -des3 -a -salt -in /ets/fstab -out /tmp/fstab.cipher 解密:openssl enc -d -dec3 -a -salt -in /tmp/fstab.cipher  -out 文件 单向加密: 工具:sha1sum,md5sum,openssl dgst openssl dgst [-md5|-md4|-

Linux之加密和解密技术

加密和解密技术 本章内容: 安全机制 对称加密 不对称加密 散列算法 PKI和CA 相关知识: 1)传输层协议: TCP(面向连接),UDP(面向无连接),SCTP(流控协议) 2)port(端口):传输层协议都会提供端口, 端口(port)是标记进程的地址,进程向内核注册才能使用某端口(独占) 任何一个进程占领某个端口之后,其他进程进不能使用了: 3)同一主机上的进程间通信: IPC,message qoeue(消息队列),shm(共享内存),semerphor 4)不同主机间的进程通信: 通