基于RSA公匙--PGP邮件数字签名
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邮件数字签名相关推荐
- 一个基于RSA算法的Java数字签名例子
====================================================== 注:本文源代码点此下载 ================================= ...
- python基于rsa的数字签名实现_OpenSSL和Python实现RSA Key数字签名和验证
OpenSSL和Python实现RSA Key数字签名和验证,基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密).本文提供一个基 ...
- Java基于OpenSSL生成 RSA 公私钥对数据进行加解密
使用OpenSSL来生成私钥和公钥 验证机器上是否安装openssl 命令:openssl version -a [root@node00 test]# openssl version -a Open ...
- 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)和数 ...
- java中使用openssl生成的rsa公私钥进行数据加解密_使用openssl生成RSA公钥和私钥对...
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- 基于RSA的公钥基础体系下安全通信实战
目录 简说RSA 服务器的初始密钥对和认证请求 证书认证机构CA 服务器安装CA签名证书 客户机 小结 从样板戏<红灯记>到好莱坞谍战大片<风语者Windtalkers>等,许 ...
- Vue与Spring boot基于RSA非对称加密进行前后端交互
当处理大型的系统项目,或者保密性要求高的项目.是要解除一些加密算法的,非对称加密肯定比对称加密更加安全,但是也更消耗性能.这里就展示一下前端使用Vue,后端使用Spring boot的情况下,进行前后 ...
- 基于RSA和AES混合加密实现的加解密小工具
基于RSA和AES混合加密实现的加解密小工具 闲来无事,用python的tkinter开发了一个基于RSA和AES混合加密的小小工具.总结一下使用到的知识点. 首先是核心的加解密部分. 采用混合加密的 ...
- jdk的keytool生成jks和获取jks的信息,公匙
1.生成jks.执行命令:keytool -genkeypair -alias mytest -keyalg RSA -keypass mypass -keystore mytest.jks -sto ...
最新文章
- ObjectDataSource使用初步
- python爬虫代码1000行-最精简的爬虫 --仅需4行代码(python)
- 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
- mysql不支持python3吗_MySQL的4种事务隔离级别你还不清楚吗?
- HTML邮件制作规范
- fastapi 请求体 - 多个参数 / 字段Field / 嵌套模型
- 【ALB学习笔记】基于事件触发方式的串行通信接口数据接收案例
- 删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
- java 动态加载ztree_JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建...
- Python 的OOP 面向对象编程基础
- 利用 bat 脚本强制杀死 Windows 进程
- 高频直流电源在整改、降压和作用方面解决方案
- 服务器弄好了怎么做网站,怎么自己做网站?自己做网站都需要什么?
- 中国本土八大会计师事务所简介
- pyftpdlib 创建ftpserver
- ipad pro能写python吗_这是一篇用 iPad Pro 写的 iPad Pro 评测
- 企业微信客户朋友圈怎么发?朋友圈规则有哪些?
- Leslie--Chueng项目服务端、小程序的本地部署操作教程
- Kafka概述-什么是Kafka?
- python爬取微博热搜神器,微博历史数据