# 基于python的DES加密
- **首先,这是一个“toy”:**
- 各种意义上,代码可能写得很随便/糟糕 ~~并且README也会写得很糟糕~~
- 不会有人性化的交互
- 除非发现致命bug,很可能不会再更新
- **其次,加密结果不保证绝对可靠;欢迎反馈错误**
## 使用说明
### 环境配置
- Python 3.x
### 运行(加密)
- 在Python解释器中打开“main.py”并运行
- 依次输入**16位16进制明文**和**16位16进制密钥**
- 得到16位16进制密文
### 运行(解密)
- 去除“main.py”中第31行代码的注释:
```python
keys = keys[::-1]
```
- 如**“运行(加密)”**般操作,不过依次输入的是**密文**和密钥。
### 有效性验证(加密模式)
- 第一组
- 输入:
```
0123456789abcdef
133457799bbcdff1
```
- 输出:
```
85e813540f0ab405
```
- 来源:https://blog.csdn.net/u013073067/article/details/86573332
> 值得一提的是,这篇文章给出的S盒是错误的,并不能得到上面的结果。
- 第二组
- 输入:
```
8787878787878787
0E329232EA6D0D73
```
- 输出:
```
0000000000000000
```
- 来源:https://www.cnblogs.com/lixiaoxu/articles/7736917.html
### 扩展功能
- 输出迭代加密过程中的$K_i$,$R_i$,$L_i$和每轮加密结果
- 从“iterTransform.py”的第157行开始,去除输出内容的注释即可
## 工具箱使用说明
### cypher_compare_tool.py
> 用于验证雪崩效应
- 比较两个**16位十六进制**字符串有多少**二进制位**的不同
- 需要安装NumPy库
### bin_ft_hex.py
- 16位十六进制数和64位二进制数相互转换
- 输入必须为16位或64位,且进制必须正确,否则报错
## 项目起源及碎碎念
- 这个项目是学校网安概论课的作业。
- 因而,项目总体结构基于我们的教材:清华大学出版社《信息安全原理及应用》(第三版)P32-P38。
> - 基本可以确定第33页给出的IP置换矩阵有误。
>
> - 本代码里采用的S8盒与书P35的S8盒有3处不同(与百度百科一致)。如果将书上的那三处不同称为“错误”的话似乎有些匪夷所思,所以是版本问题也说不定?
- 当然,老师说可以从网上找现成代码,但问题是,网上很难找到只加密64位的、不是3-DES也不是2-DES而只加密一次的代码。
> 甚至于想找一个加密工具网站来对照验证一下结果都找不到。
>
> 属于是写得太高级了。
>
> > 当然,也可能是因为我只找了github但没有找gitee……
- ~~==可恶,为什么没有高亮==~~
基于python的DES加密源码.zip
版权申诉
63 浏览量
2022-04-19
15:26:04
上传
评论
收藏 12KB ZIP 举报
智慧安全方案
- 粉丝: 3613
- 资源: 59万+
最新资源
- 笔记实验六,spark,大数据分析
- ####蓝桥杯python的详细的信息介绍
- 电子万年历软件仿真(经过多次修改,保证正确性)
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈