晕了,怎么回事啊
程序代码:
void F_func(bool In[32],const bool Ki[48]) { static bool MR[48]; Transform(MR,In,Extension_Table,48);//扩展成48位 Xor(MR,Ki,48);//与子密钥进行异或运算 S_func(In,MR);//S盒代换,处理后变成32位 Transform(In,In,P_Table,32);//P置换 } void DES(char Out[8],char In[8],const bool Ki[48],bool Type) { static bool M[64],tmp[32],*Li=&M[0],*Ri=&M[32]; ByteToBit(M,In,64); Transform(M,M,IP_Table,64); if(Type==ENCRYPT) { for(int i=0;i<16;i++) { memcpy(tmp,Ri,32); F_func(Ri,Ki[i]);//提示这里出错了,怎么回事? Xor(Ri,Li,32); memcpy(Li,tmp,32); } } else { for(int i=15;i>=0;i--) { memcpy(tmp,Li,32); F_func(Li,Ki[i]); Xor(Li,Ri,32); memcpy(Ri,tmp,32); } } Transform(M,M,IP1_Table,64); BitToByte(Out,M,64); }错误提示:
我只是把代码出错的地方弄出来了,赶紧给看看哪里错了,急啊!