转载学习并实现DES加密解密算法(三)

本文介绍了一种基于DES算法原理的三重DES加密方法,实现了对任意长度明文的有效加密与解密过程。通过具体代码示例展示了如何处理不同长度的数据,并确保其符合DES加密的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:finallyliuyu 出处:博客园

注意:整个三重DES加密算法,是在了解DES算法原理的基础上,并且在邹德强先生的源码基础上进行改编。

实现对任意长度明文进行加密

转载学习并实现DES加密解密算法(一)

转载学习并实现DES加密解密算法(二)

mingwenori的维度为多少,那么datalenori就等于多少。

ExpandedBlockStart.gif 任意长度明文加密
void  main()
{
    printf(
" finish\n " );
    myDES des;
    
int  datalenori = 11 ;
    
int  datalen = 0 ;
    
char  mingwenori[ 11 ] = { ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' , ' , ' 0 ' , ' 8 ' , ' v ' , ' A ' , ' ~ ' };
    
char  key[ 24 ] = { ' q ' , ' w ' , ' r ' , ' t ' , ' y ' , ' u ' , ' 0 ' , ' b ' , ' v ' , ' s ' , ' a ' , ' z ' , ' l ' , ' ; ' , ' y ' , ' 5 ' , ' ? ' , ' 3 ' , ' n ' , ' m ' , ' 3 ' , ' 0 ' , ' a ' , ' q ' };
    
for  ( int  i = 0 ;i < datalenori;i ++ )
    {
        printf(
" %c " ,mingwenori[i]);

    }
    printf(
" \n " );
    
    
if (datalenori % 8 )
    {
        datalen
= (datalenori / 8 + 1 ) * 8 ;

    }
    
else
    {
        datalen
= datalenori;
    }
    
    
char   * miwen = new   char [datalen];
    
char * mingwen = new   char [datalen];

    
char   * descriptmingwen = new   char [datalen];
    des.RunPad(mingwenori,datalenori,mingwen);
    
    des.RunDes(
true ,mingwen,miwen,datalen,key, 24 );
    
    
for  ( int  i = 0 ;i < datalen;i ++ )
    {
        printf(
" %c " ,miwen[i]);

    }
    printf(
" \n " );
    des.RunDes(
false ,miwen,descriptmingwen,datalen,key, 24 );
    
for  ( int  i = 0 ;i < datalen;i ++ )
    {
        printf(
" %c " ,descriptmingwen[i]);

    }

  

    

    delete mingwen;
    delete miwen;
    delete descriptmingwen;
    
int  end;
    scanf(
" %d " , & end);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值