python实现DES及简单图像化界面
DES算法简单介绍 DES是一种分组密码。明文、密文和密钥的分组长度都是64位; DES是面向二进制的密码算法,因而能够加解密任何形式的计算机数据; DES是对合运算,因而加解密共用同一个算法,从而使工程实现的工作量减半; DES的密码结构属于Feistel结构,这种结构是IBM的密码专家Feistel最早提出的。 DES算法的细节网上有很多,因此不详细展开。 代码结构主要包括: 子密钥的产生:置换选择1,循环左移,置换选择2; 初始置换IP; 加密函数f:选择运算E,代替函数组S(也就是S盒处理),置换运算; 逆初始置换IP; DES最后加解密。 没有规范学习过python,代码风格可能不太好,直接硬写,对于代码风格以及实现过程若有错误或者建议,恳请指出。 tkinter效果 实现代码 DES.py # -*- coding: utf-8 -*- # DES.py #生成子密钥 #64位密钥经过置换选择1、循环左移、置换选择2等变换,产生16个48位长的子密钥 #参数是64位密钥 def generkey ( key ) : keylist = list ( key ) #将输入密钥转换为列表 #置换选择1 left = [ 57 , 49 , 41 , 33 , 25 , 17 , 9 , 1 , 58 , 50 , 42 , 34 , 26 , 18 , 10 , 2 ,