PGP (Pretty Good Privacy) 是一个基于RSA公匙加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。

1.在加密前,先看一下PGP的密钥情况:在testpgp1用户中,如图

2.则在testpgp2用户中,如图:

二、创建用户及密钥

1.打开菜单“文件”,运行“新建PGP密钥”。

2.为密钥设定保护密码,密码长度不能少于8个字符,然后点击 下一步

3密钥创建成功,PGP Keys 中将显示出你的密钥。

三、PGPkeys的使用

1.导出自己的公钥

(1)在PGPkeys主界面右击一个密钥对,在弹出的快捷菜单中选择“导出”,出现“导出密钥为文件”对话框。

(2)选择一个合适的目录和文件名后,单击“保存”按钮,公钥将保存为一个文件,扩展名为.asc。

(3)可以用记事本打开导出的文件,就可以看到导出的公钥了。

1.接受到对方邮件发送来的密钥和文件

2.使用公钥加密文件

(1)这是我们需要加密的文字,首先选取需要加密的文字内容,示例中拷贝一下(Ctrl+C)

(2)用鼠标点击屏幕右下角的这个图标,将出现下面的菜单。

(3)执行Clipboard\Encrypt

(4)在弹出的对话框中,选择要使用的加密密钥(在密钥上双击鼠标左健),选中需要使用的密钥后,点击 确定

(6)加密后,在文字编辑软件中按下 Ctrl+V ,就可以看到加密后的密文。

二、安装PGP后,当第一次发送邮件时候会询问是否对此账户进行加密。打开FoxMail,配置一个新邮箱,或向任意邮箱发送邮件,PGP会第一次会阻止邮件的发送,并让用户选择,是否需要自动对此邮件加密,如图,选择YES/NO,点击下一步(如果选择YES,则PGP会自动加密邮件,但是对接收方有一定的要求,其必须有PGP服务器提供的证书,否则会发送失败,所以这里用手动的方式,只要双方可以互换公钥,即可加密邮件)。

1、打开Foxmail,向testpgp2@sina.cn发送邮件

2.接收到对方的密钥和加密之后的文件,手动将文本文件的后缀名,修改为gpg,并将对方的密钥导入

将文本文件导入进去,利用之前导入进去的密钥进行解

将要解密的文本文件放入一个指定的位置--桌面最后可以将文件解密出来

实验心得:

先在本地测试加密解密文件,需要两台电脑完成,使用对方的公钥进行加密,将加密之后的文件发给对方,对方成功使用他的私钥解密文件,验证了非对称加密算法的安全性,及通信双方同时拥有自己的私钥和公钥,A向B发送信息,A先取得B的公钥,使用B的公钥进行加密, B接收到信息,使用自己的私钥进行解密,即在不暴露双方私钥的情况下,完成交付。在实验中出现了,拥有对方密钥依旧,打不开的情况,检查之后发现,是在给文本加密的时候,没有选择B的公钥自己的私钥进行加密,造成的结果,修改之后实验顺利完成。

基于RSA公匙--PGP邮件数字签名相关推荐

  1. 一个基于RSA算法的Java数字签名例子

    ====================================================== 注:本文源代码点此下载 ================================= ...

  2. python基于rsa的数字签名实现_OpenSSL和Python实现RSA Key数字签名和验证

    OpenSSL和Python实现RSA Key数字签名和验证,基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密).本文提供一个基 ...

  3. Java基于OpenSSL生成 RSA 公私钥对数据进行加解密

    使用OpenSSL来生成私钥和公钥 验证机器上是否安装openssl 命令:openssl version -a [root@node00 test]# openssl version -a Open ...

  4. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  5. java中使用openssl生成的rsa公私钥进行数据加解密_使用openssl生成RSA公钥和私钥对...

    在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...

  6. 基于RSA的公钥基础体系下安全通信实战

    目录 简说RSA 服务器的初始密钥对和认证请求 证书认证机构CA 服务器安装CA签名证书 客户机 小结 从样板戏<红灯记>到好莱坞谍战大片<风语者Windtalkers>等,许 ...

  7. Vue与Spring boot基于RSA非对称加密进行前后端交互

    当处理大型的系统项目,或者保密性要求高的项目.是要解除一些加密算法的,非对称加密肯定比对称加密更加安全,但是也更消耗性能.这里就展示一下前端使用Vue,后端使用Spring boot的情况下,进行前后 ...

  8. 基于RSA和AES混合加密实现的加解密小工具

    基于RSA和AES混合加密实现的加解密小工具 闲来无事,用python的tkinter开发了一个基于RSA和AES混合加密的小小工具.总结一下使用到的知识点. 首先是核心的加解密部分. 采用混合加密的 ...

  9. jdk的keytool生成jks和获取jks的信息,公匙

    1.生成jks.执行命令:keytool -genkeypair -alias mytest -keyalg RSA -keypass mypass -keystore mytest.jks -sto ...

最新文章

  1. ObjectDataSource使用初步
  2. python爬虫代码1000行-最精简的爬虫 --仅需4行代码(python)
  3. 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
  4. mysql不支持python3吗_MySQL的4种事务隔离级别你还不清楚吗?
  5. HTML邮件制作规范
  6. fastapi 请求体 - 多个参数 / 字段Field / 嵌套模型
  7. 【ALB学习笔记】基于事件触发方式的串行通信接口数据接收案例
  8. 删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
  9. java 动态加载ztree_JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建...
  10. Python 的OOP 面向对象编程基础
  11. 利用 bat 脚本强制杀死 Windows 进程
  12. 高频直流电源在整改、降压和作用方面解决方案
  13. 服务器弄好了怎么做网站,怎么自己做网站?自己做网站都需要什么?
  14. 中国本土八大会计师事务所简介
  15. pyftpdlib 创建ftpserver
  16. ipad pro能写python吗_这是一篇用 iPad Pro 写的 iPad Pro 评测
  17. 企业微信客户朋友圈怎么发?朋友圈规则有哪些?
  18. Leslie--Chueng项目服务端、小程序的本地部署操作教程
  19. Kafka概述-什么是Kafka?
  20. python爬取微博热搜神器,微博历史数据

热门文章

  1. 2014 android 机型排行,2014年1月份10大畅销Android智能手机排名(图)
  2. 智能家电和信息家电的Internet连接
  3. 【Beta阶段任务分配】命劫开发
  4. Python plt.plot画图
  5. 查看maven仓库地址
  6. 大厂P6职级提升攻略
  7. linux chkconfig 目录,Linux中chkconfig命令的简介及使用方法
  8. 升压恒流驱动 LED开关 手电筒 太阳能灯 背光模式 方案分享
  9. Hystrix熔断流程
  10. 108964-32-5,荧光钙探针 Fura 2-AM,FURA-2AMFURA,2-AM SPECIAL PACKAGING