加密算法程序
编码函数执行对Unique ID进行数据算法处理。实验中采用的算法为将存放Unique ID的数组进行左移三个元素后逐位取反。将编码后的数据存入另一个数组。
编码函数代码如下:
- /*描述:对芯片ID进行编码处理*/
- /*输入:存放芯片ID的数组;存放芯片ID编码后的数组*/
- /*输出:无*/ /*参数:对输入数组左移三次后逐位取反*/
- void Encode(unsigned char *DataIn,unsigned char *DataOut)//对数据进行编码加密
- {
- unsigned char i;//数组数据左移次数 unsigned char j;//数据位移临时局部变量
- unsigned char DataSwap;//搬运数据用的临时变量
- unsigned char TempData[12];//数据处理交换变量数组
- for(i=0;i<12;i++)//数据数组交换
- {
- TempData[i] = *DataIn; DataIn++;
- }
- for(i=0;i<3;i++)
- {
- //数组元素左移操作
- DataSwap = TempData[0];
- for(j=0;j<11;j++) //数组左移搬运
- {
- TempData[j] = TempData[j+1]; } TempData[11] = DataSwap;
- }
- for(i=0;i<12;i++)
- {
- TempData[i] = ~ TempData[i] ; //对数组数据进行按位取反
- *DataOut = TempData[i] ; DataOut++;
- }
- }
|