文件名称:DES 加密解密 VC
文件大小:10KB
文件格式:CPP
更新时间:2013-05-26 02:11:24
DES 加密解密 VC
/printf("原来的数据为:%I64d \n" ,message ); //printf("%I64d %I64d " ,message , key ); ip( &message ); //变换初始待加密文 //pc1( &key , &c, &d ); //密钥置换64位->56位 L=R=0; R=0x00000000ffffffff&message; L=0x00000000ffffffff&(message>>32); //printf("%I64d %d %d " , message , L, R ); for( i =1 ; i<=16 ; i++) { //printf("第 %d 次加密\n" , i ); temp=R; func( i , &R ); //fun( i , &R , &c , &d ); //经过fun()函数后,R已经改变了,为F(R,K) R=R^L; L=temp; //printf("L是 %d , R是%d \n" , L, R ); } rmg=0; rmg=rmg|R; //最后一次是按R,L的顺序合成,而不是L,R rmg=rmg<<32; rmg=rmg|L; ip1( &rmg );//末置换加密数据 //printf("加密后的数据为:%I64d\n" , rmg ); for( i=0 ; i<8 ; i++) { char ch=0x00000000000000ff&(rmg>>56); rmg=rmg<<8; fprintf( fp1 , "%c" , ch ); } //printf(" %I64d" , rmg ); } fclose(fp); fclose(fp1); puts("加密结束.....请查看密文result.txt\n"); for( i=0 ; i<8 ; i++)