给与关键点提示也可以。
u8 Wifi_EncryptionHalfByte(u8 bt,u8 m8)
{
return (bt-m8) & 0xf;
}
u32 Wifi_Encryption(u32 dat,u32 mm)
{
dat = dat ^ mm;
val = 0;
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>28)&0x0f,(mm>>0 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>24)&0x0f,(mm>>4 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>20)&0x0f,(mm>>8 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>16)&0x0f,(mm>>12)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>12)&0x0f,(mm>>16)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>8 )&0x0f,(mm>>20)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>4 )&0x0f,(mm>>24)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>0 )&0x0f,(mm>>28)&0x0f);
return val;
}
u8 Wifi_DecryptionHalfByte(u8 bt,u8 m8)
{
return (bt+m8) & 0xf;
}
u32 Wifi_Decryption(u32 dat,u32 mm)
{
val = 0;
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>28)&0x0f,(mm>>0 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>24)&0x0f,(mm>>4 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>20)&0x0f,(mm>>8 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>16)&0x0f,(mm>>12)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>12)&0x0f,(mm>>16)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>8 )&0x0f,(mm>>20)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>4 )&0x0f,(mm>>24)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>0 )&0x0f,(mm>>28)&0x0f);
val = val ^ mm;
return val;
}
除了u8 u32转换为byte int,没看出什么别的不同。如果不行,请在我回答下面评论追问。
byte Wifi_EncryptionHalfByte(byte bt,byte m8)
{
return (bt-m8) & 0xf;
}
int Wifi_Encryption(int dat,int mm)
{
dat = dat ^ mm;
val = 0;
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>28)&0x0f,(mm>>0 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>24)&0x0f,(mm>>4 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>20)&0x0f,(mm>>8 )&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>16)&0x0f,(mm>>12)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>12)&0x0f,(mm>>16)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>8 )&0x0f,(mm>>20)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>4 )&0x0f,(mm>>24)&0x0f);
val = (val<<4) + Wifi_EncryptionHalfByte((dat>>0 )&0x0f,(mm>>28)&0x0f);
return val;
}
byte Wifi_DecryptionHalfByte(byte bt,byte m8)
{
return (bt+m8) & 0xf;
}
int Wifi_Decryption(int dat,int mm)
{
val = 0;
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>28)&0x0f,(mm>>0 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>24)&0x0f,(mm>>4 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>20)&0x0f,(mm>>8 )&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>16)&0x0f,(mm>>12)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>12)&0x0f,(mm>>16)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>8 )&0x0f,(mm>>20)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>4 )&0x0f,(mm>>24)&0x0f);
val = (val<<4) + Wifi_DecryptionHalfByte((dat>>0 )&0x0f,(mm>>28)&0x0f);
val = val ^ mm;
return val;
}