extern void DES_EncryptBlock(char plainBlock[8],int subkeys[16][48],char cipherBlock[8])
{
int plainbit[64]={0};
int copyright[48]={0};
int cnt;
Char8tobit64(plainBlock,plainbit);
IP_transform(plainbit);
//16轮迭代
for(cnt=0;cnt<16;cnt++)
{
memcpy(copyright,plainbit+32,32);
E_transform(copyright);
DES_OR(copyright,subkeys[cnt],48);
DES_SBOX(copyright);
P_transform(copyright);
DES_OR(plainbit,copyright,32);
if(cnt!=15)
{
swap(plainbit,plainbit+32);
}
IP_1_transform(plainbit);
Bit64tochar8(plainbit,cipherBlock);
}
}这是DES加密的程序,但是memcpy那语句出错,32个数据没拷贝进去
一只名叫tom的猫
素胚勾勒不出你