准备
#include <stdio.h>
typedef unsigned char uint8_t;
void show_arr(uint8_t *arr,int len)
{
int i=0;
while(i<len)
printf("%d\t",arr[i++] );
printf("\n");
}
简单:数据---异或一个数据变成新数据--再次异或那个数据就会打回原形
uint8_t encrypt(uint8_t *data, uint8_t cipherKey , uint8_t length)
{
for (int i = 0; i < length; i++)
{
data[i] = ((uint8_t) ((data[i] ^ cipherKey) & 0xff));
}
return 1;
}
.......
unsigned char arr[4]={1,2,3,4};
show_arr(arr,4);
encrypt(arr,0xAB,4);
show_arr(arr,4);
encrypt(arr,0xAB,4);
show_arr(arr,4);
上面可以说是一层加密,我们可以多层加密。比如你是data^A^B^C这样就加密了3层 你解密的时候就dat^C^B^A
uint8_t encryptCommand(uint8_t *command,uint8_t size, uint8_t *keyWord , uint8_t length)
{
for (int i = 0; i < length; i++)
{
encrypt(command, keyWord[i] , size);
}
return TRUE;
}
uint8_t decryptCommand(uint8_t *command,uint8_t size, uint8_t *keyWord , uint8_t length)
{
while(length--)
{
encrypt(command, keyWord[length],size);
}
return TRUE;
}