DES+RSA密码工具(图形界面)

1、实验环境:

框架脚本:Python3.5

UI设计脚本:Wxpython4.0.1

平台:Win10

资源链接(含实验报告文档):https://download.csdn.net/download/mynameisyournamewuyu/10473131

2、界面截图


 

2、实验内容:

1)DES加密算法:

(1)加解密字符串。

(2)加解密文件。

(3)界面设计。

2)RSA加密算法:

(1)RSA生成公私钥及加密解密过程演示。

(2)RSA加密解密

 

3、实验目的:

(1)理解对称加密算法的原理和特点

(2)理解DES算法的加密原理和使用模式

(3)了解非对称加密机制

(4)理解RSA算法的加密原理

 

4、实验过程:

DES加密算法:

1、对密钥的处理:

由于用户输入的秘钥是8个字符,故首先要将其转化为64位的二进制字符串,该功能由handle.py中的keyencode函数实现:


2、 加密流程:

1) 点击复选框,选择是加密文件还是字符串,如果选择,则导入文件的内容到明文区。

2) 用户输入的明文为任意字符串(包含中文字符以及英文字母以及标点符号),首先要进行分组处理,分组成64位二进制一组的二进制字符串,最后一组不足64位的使用填充法,该部分由handle.py中的encode函数处理。

3) 接着根据之前得到的64位秘钥以及明文,依次进行DES加密,得到包含所有64位密文的数组。

4) 接着要将各64位的密文连在一起得到二进制的密文字符串,再对其进行base64编码得到最终的输出字符串,该部分由handle.py中的base64encode函数处理。

5) 进度条显示当前加密进度

 

 

3、 解密流程:

1) 解密首先要对得到的密文字符串进行反base64编码处理,去掉后面添加的‘=’,接着将其根据base64的编码规则转化为二进制字符串,然后去掉之前添加的‘0’字符,然后将字符串进行分组,分为64位一组。这一部分由handle.py中的base64decode函数完成。

2) 接着根据之前得到的64位秘钥以及密文,依次进行DES解密,得到包含所有64位明文的数组。

3) 接着要对得到的包含所有64位明文的数组进行处理,首先去掉之前填充的多余的字符,接着对二进制字符串进行反编码得到源字符串。该部分由handle.py中的decode函数得到。

 

 

 

RSA加密算法:

1、 加密流程:

1) 随机选取两个不相等的质数p和q。


2) 计算p和q的乘积

n:n=pxq

3) 计算欧拉函数φ(n)。(程序里我用的是u(n))

φ(n)=(p-1)x(q-1)

4) 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。

5) 计算e对于φ(n)的模反元素d。

6) 将n和e封装成公钥,n和d封装成私钥。

公钥:(e,n) 私钥:(d,n)

7) 密文c=明文m^公钥e mod 公钥n:

C=m^e mod n

 

2、 解密流程:

1) 前面6个步骤相同

2) 明文m=密文c^私钥d mod私钥n:

M=c^d mod n


reference:

https://www.cnblogs.com/lomooo/p/6358329.html

https://www.cnblogs.com/lomooo/p/6083344.html

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值