视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
DES加密算法与解密(带流程图)
2025-09-29 16:37:44 责编:小OO
文档
一、DES加密及解密算法程序源代码:

#include

using namespace std;

c置换

const static char Final_Table[] = {     最终置换

};

const static char S_Box[8][] = {   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

};

const static char Rar_Table[] = {    压缩置换

 

};

const static char Exp_Table[] = {    扩展置换

 

 

};

const static char P_Table[]={     置换

 

 

 

};

const static char KeyRar_Table[]={

 

 

};

//设置全局变量,16轮密钥

bool key[16][48]={{0}};

void ByteToBit(bool *Out,char *In,int bits)  字节到位转换函数

{

 

}

void BitToByte(char *Out,bool *In,int bits)   位到字节转换函数

{

 

 

}

v按位异或

{

 

}

v密钥生成函数

{

 字节到位的转换

 密钥压缩为56位

 

 轮密钥产生

 

  

 

  

  分左右两块循环左移

 

  

  

   

   

    

   

  

  

  

   

  

  

  

   

  

 

  压缩置换并储存

  

}

void DES(char Out[8],char In[8],bool Type)//加密核心程序,Type=0时加密,反之解密

{

 

  初始置换

 bool *Li=&MW[0],*Ri=&MW[32];

        右明文扩展置换

 

           加密过程

 

 

  

   

          右明文扩展置换

   

   for(i=0;i<48;i++)

   

  

   盒置换*/

  

  

   

   

   

   

   

   

  

     置换 

   

       异或

     交换左右明文

   {

   

  

 

 

 

  

  

   Ri[i]=tmp[i];

 

 

  

    位到字节的转换

           解密过程

  

 

 

 

  

         右明文扩展置换

  

 

  

 

  盒置换*/

 

 

  

  

  

  

  

  

 

    置换 

  

      异或

    交换左右明文

  {

   

 

  

 

 

 

  

  

   Ri[i]=tmp[i];

 

 

  

    位到字节的转换

}

bool RunDes(char *Out, char *In, int datalength, char *Key, bool Type) //加密运行函数,判断输入以及对输入文本8字节分割

{

 

  

}

int main()

{

 请输入密钥(8位):" <<"\\n";

 

 cout << "\\n";

 加密

 加密前----" << "\\n";

 for(i_mf=0;i_mf 

 加密后----" << "\\n";

 

 此处进行不同密钥输入测试

 请输入密钥(8位):" <<"\\n";

 

 cout << "\\n";

 解密

 解密后----" << "\\n";

 for(i_mf=0;i_mf 

}

二、程序编译、运行结果图:

三、程序总体框架图:

四、程序实现流程图:下载本文

显示全文
专题