晕了,怎么回事啊
程序代码: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);
}错误提示:我只是把代码出错的地方弄出来了,赶紧给看看哪里错了,急啊!









