`
qq_24760417
  • 浏览: 4943 次
社区版块
存档分类
最新评论

GPG加密解密与实际应用

    博客分类:
  • GPG
GPG 
阅读更多

主要内容:GPG加密解密的基本操作与少量应用。

简介

GPG——GnuPG,是一种非对称密钥加密工具软件,主要用于加密解密,进行数字签名等。GPG可以生成用于加密解密、进行数字签名、数据指纹的非对称密钥。

安装

目前UBUNTU默认已经安装了GPG,编译安装可参考中文版Howto中的安装一节。注意国际版和美国版的区别。

生成密钥操作过程

生成密钥的命令是gpg –gen-key,下面是一个gpg –gen-key执行的过程,会夹杂说明文字,并跳过一部分不重要的提示信息,来说明密钥生成的过程:

gpg --gen-key
……
请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 

可以选择不同的加密算法,以及用途。以前默认使用的是DSA算法,目前变成了RSA。这次选择默认。

RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048) 

密钥长度/尺寸越长,越不易破解,但也需要更多的处理过程,因而可能处理的更慢。此处默认值是2048。此值已经与HOWTO中不太一样了,更长了,DSA密钥的长度范围也变成了1024-3072之间。这是个“泄露年龄的问题”。

请设定这把密钥的有效期限。
     0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
……

密钥有效期,不用解释。

您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
    “Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”

真实姓名: xxx
电子邮件地址: xxx@sina.com

这个标识会作为以后维护密钥的标志,如查询,导入导出,销毁等操作,将以此为UID进行检索确认对只个密钥进行操作。

您需要一个密码来保护您的私钥。

输入一个密码,这样在使用密钥时,会要求输入密码,正确后才能使用密钥,这是第二重保护。 可以不输入密码,以用于一些特殊用途,不过一般情况下,还是有它比较好,只是必须记好,别忘了。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要177字节)
....+++++

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要155字节)
....................+++++

这时系统开始生成密钥,这期间需要有足够的操作以在内存中生成随机数。所以,去干点别的,直到密钥生成完毕,但不要离开喝茶。

gpg: 密钥 375B9788 被标记为绝对信任
公钥和私钥已经生成并经签名。
……
sub   4096R/107FE36C 2014-12-13

至此密钥生成完成。

对密钥的一些操作

查看密钥

$ gpg --list-keys
/home/pangyi/.gnupg/pubring.gpg
-------------------------------
pub   4096R/375B9788 2014-12-13
uid                  xxx (xxxxx) <xxx@sina.com>
sub   4096R/107FE36C 2014-12-13

pub   3072D/9D4F5F01 2014-12-14
uid                  uidfile (xxx) <xxx@sina.com>
sub   3072g/6D72E230 2014-12-14

可以看到密钥的UID。

查看密钥签名信息使用gpg –list-sigs,查看密钥指纹信息使用gpg –fingerprint

查看私钥信息:

gpg --list-secret-keys
/home/pangyi/.gnupg/secring.gpg
-------------------------------
sec   4096R/375B9788 2014-12-13
uid                  xxx (xxxxx) <xxx@sina.com>
ssb   4096R/107FE36C 2014-12-13

sec   3072D/9D4F5F01 2014-12-14
uid                  uidfile (xxx) <xxx@sina.com>
ssb   3072g/6D72E230 2014-12-14

导出密钥

gpg –export 用于导出密钥公钥。当有多个密钥时,需要指定UID或sec处的标识,输入的UID不必完整,能唯一标识就能输出密钥。但用UID有可能会同时输出多个密钥来,不如使用sec好。

密钥会输出到标准输出,可以重定向到文件保存。

导入密钥

未测试,使用gpg –import [Filename]导入公钥,如果不指定文件则从标准输入导入。

注销密钥

未测试,使用gpg –gen-revoke注销,需要用到密钥密码

删除密钥

未测试,gpg –delete-key

编辑密钥

gpg –edit-key是编辑密钥的指令,它能:

签名

没有导入的密钥,无法测试,本地生成的已经签过:gpg –edit-key UID sign

修改密码

未测试,gpg –edit-key UID passwd

等……

加密文件

加密一个文件,使用“gpg -e -r UID 文件名”来完成。加密后会生成一个原文件名.gpg的文件。

解密文件

解密文件的操作如下:

$ gpg -d -r uidfile test.gpg
gpg: 由 3072 位的 ELG-E 密钥加密,钥匙号为 6D72E230、生成于 2014-12-14
      “uidfile (xxx) <xxx@sina.com>”
test

除前两行显示外的内容是GPG显示到标准输出的内容。它是解密后文件的内容。可以将它重定向生成文件获取解密的文件。可以看到,加密前文件的内容是test。

不知道是不是因为输出内容中有到非标准输出的内容,虽然进程的返回结果是0,但在expect这类脚本语言中会出现报错,无法正常执行。

如果密钥生成时设置了密码,在解密时会提示输入,如果输入不正解是无法解密的。

在UBUNTU环境中,如果输入过一次密码,那么之后都不用再输入,直到系统重新启动

源码:获取

 

0
0
分享到:
评论

相关推荐

    c# 实现对文件的GPG 加密与解密

    c# 使用DidiSoft.Pgp来实现对文件的GPG 加密与解密 。GPG非对称加密需要公钥和私钥 :你的公钥的作用 :别人用来给你发加密的信息&别人验证你的签名,即加密&验证(别人来做) 你的私钥的作用 :你用来创建签名&...

    gpg加密解密 加密工具.zip

    标题中的"加密解密"指的是GPG的核心功能,即加密和解密文件或消息。GPG通过生成一对密钥来实现这一目标:公钥和私钥。公钥可以公开分享,用于加密数据,而私钥则必须保密,用于解密数据。这种非对称加密机制使得只有...

    gpg加密解密程序

    是一款gpg格式的加解密程序!在做加文件解密时必备的一款加解密软件,虽然版本低些但是免费的,具有很强的学习和应用价值!

    如何应用GPG加密

    《如何应用GPG加密》 GPG,全称为GNU Privacy Guard,是一款强大的开源加密和数字签名工具,与著名的PGP(Pretty Good Privacy)兼容。它采用非对称加密技术,核心在于一对密钥:公钥和私钥。公钥可以公开,用于...

    PGP - GPG加密安全

    虽然速度较快,但由于密钥必须保密,因此在实际应用中通常与非对称加密结合使用。 #### 三、PGP的工作流程 1. **生成密钥对**: 用户首先生成一个公钥和一个私钥。公钥可以公开分发给其他人,而私钥必须保密。 2. *...

    GPG签名及加密

    5. **加密及签名**:在实际应用中,经常需要同时进行加密和签名。例如,你可能希望发送一份既保密又可验证真实性的文件。这时,你可以使用接收者的公钥加密文件,同时用自己的私钥对该文件进行签名。接收者将使用你...

    字符串(文件)加密解密工具,操作方便,功能强大。

    本文将深入探讨标题和描述中提及的“字符串(文件)加密解密工具”,并介绍相关的加密解密方法以及其在实际应用中的重要性。 首先,我们要理解什么是加密。加密是一种将明文(可读信息)转化为密文(不可读信息)的...

    node-gpg:通过gpg命令行工具在node.js中进行GPG加密和解密

    Node.js中的GPG加密/解密 该模块是gpg的包装,供Node中使用。 Node-GPG负责生成gpg ,将其传递给正确的参数,并将输入管道传递给stdin。 它还可以通过管道将文件中的输入输入并输出到文件中。 如果您正在考虑直接从...

    GPG 加密 详解

    ### GPG加密详解 #### 一、GPG加密概述 GPG(GNU Privacy Guard)是一种免费的加密软件,用于实现非对称加密技术,尤其适用于数据传输过程中的信息安全保障。在互联网环境中,很多应用程序(如Web浏览、电子邮件等...

    gpg4usb加密和解密信息软件v0.3.11绿色免费版

    gpg4usb是一款小巧而实用的加密和解密工具,专为那些希望在日常生活中保护信息安全的用户提供服务。这个软件基于GnuPG(GNU Privacy Guard),一个强大的开源加密系统,遵循OpenPGP标准,确保了全球范围内的互操作性...

    linux下的gpg加密工具.windows版本

    gpg加密工具。解压到C:\Windows\System32 使用 命令行下 (gpg -c 文件路径加密 )gpg 文件路径解密 。 此gpg带iconv.dl。功能完整。可以产生收发电子邮件使用的公钥和私钥。能够以txt形式加解密电子邮件。并可以...

    加密与解密实战入门

    总之,"加密与解密实战入门"是一本面向初学者的教程,它不仅介绍了加密解密的基本理论,还提供了丰富的实践案例和资源,帮助读者在理论和实践中建立起对加密技术的全面认识。无论是对于个人隐私保护,还是企业数据...

    关于加密解密备忘

    5. 加密解密工具的应用:介绍如何使用GPG、7-Zip等工具进行数据加密,包括命令行选项和实际操作步骤。 6. 安全实践和注意事项:讨论加密解密过程中的安全问题,如密钥管理、数据完整性检查等。 这个主题对于IT从业...

    开源加密工具gpg

    总结,GPG作为开源的加密工具,以其强大的功能和广泛的应用场景,为我们的数字生活提供了安全保障。gnupg-1.4.12版本作为一个经典的选择,虽然不如最新版本功能丰富,但它的稳定性和兼容性使其在很多场景下仍被广泛...

    PHP 加密解密方法

    PHP中可以使用`openssl_pkey_new`生成密钥对,`openssl_public_encrypt`和`openssl_private_decrypt`进行加密解密。 2. **PGP**:Pretty Good Privacy,通常用于电子邮件加密,PHP可以通过第三方库如PHP-GPG实现。 ...

    对档案进行加密和解密

    五、加密解密的安全性考虑 尽管加密技术能提供良好的数据保护,但也存在安全隐患,如密钥管理不当、算法漏洞和侧信道攻击等。因此,使用强密码、定期更换密钥、更新加密算法版本以及遵循安全实践至关重要。 总结来...

    PGP加解密工具类

    对于PGP文本加密解密,操作原理与文件加密类似,只是处理的是纯文本。PGP工具类可以方便地对文本进行加密,使其在传输过程中不被第三方窃取。解密过程同样需要使用对应的私钥。 除了加密,PGP还支持数字签名功能。...

    【加密与解密文件】GPG4WIN

    加密解密文件

    加密解密文件的软件

    "加密解密文件的软件"正是为了满足这一需求而存在的工具。这类软件能够帮助用户保护个人隐私、商业机密,防止未经授权的访问和数据泄露。下面我们将深入探讨加密解密文件的相关知识点。 一、加密原理与类型 1. 对称...

Global site tag (gtag.js) - Google Analytics