zp19810828_csnd 2015-06-03 08:52
浏览 649
已结题

求算法实现或代码修改

算法说明

图片说明

图片说明

图片说明

正确的运算结果:

例1:S1、S2、S3为E0、6E、E3,F1-F5为4D、61、7A、64、41经过算法后返回R1、R2、R3为:74、4C、49

例2:S1、S2、S3为5B、68、43,F1-F5为4D、61、7A、64、41经过算法后返回R1、R2、R3为:CA、B3、E1

例1:S1、S2、S3为,3E、B5、C3,F1-F5为4E、53、59、4E、53经过算法后返回R1、R2、R3为:93、EB、E1

# 我的代码:

#define TEYES_ABS67_MASK 0x4D617A6441

void Security ( void )

{

unsigned char SecurityData[3];

unsigned char SecurityKey[3];

unsigned long SecurityA,SecurityB,SecurityC,SecurityTemp;

uint64_t SecurityCB;

unsigned char i,chrTemp1,chrTemp2;

//SecurityData[3]:Data from ABS.

//SecurityKey[3]:Result.

//Calculation.

//Step 1

SecurityData[]={0xE3,0x6E,0xE0};

SecurityTemp = SecurityData[2];

SecurityTemp = SecurityTemp * 256 + SecurityData[1];

SecurityTemp = SecurityTemp * 256 + SecurityData[0];

SecurityCB = TEYES_ABS67_MASK;

SecurityCB = SecurityCB * 0x01000000;

SecurityCB = SecurityCB + SecurityTemp;

//Setp 2

SecurityC = 0x00C541A9;

//Setp 3

for (i=0;i<64;i++)

{

SecurityA = SecurityC;

if (SecurityCB & 1) chrTemp1 = 1;

else chrTemp1 = 0;

if (SecurityA & 1) chrTemp2 = 1;

else chrTemp2 = 0;

chrTemp1 = chrTemp1 ^ chrTemp2;

SecurityB = SecurityA >> 1;

if (chrTemp1)

{

SecurityB = SecurityB | 0x00800000;

SecurityTemp = 0x109028;

}

else SecurityTemp = 0;

SecurityTemp = SecurityTemp ^ SecurityB;

SecurityTemp = SecurityTemp & 0x109028;

SecurityC = SecurityB;

SecurityC = SecurityC & (~0x109028);

SecurityC = SecurityC + SecurityTemp;

}

//Step 4

SecurityKey[0] = (unsigned char)((SecurityC >> 4) % 256);

SecurityKey[1] = (unsigned char)((SecurityC >> 12) % 16);

SecurityKey[1] = SecurityKey[1] * 16 + (unsigned char)((SecurityC >> 20) % 16);

SecurityKey[2] = (unsigned char)(SecurityC % 16);

SecurityKey[2] = SecurityKey[2] * 16 + (unsigned char)((SecurityC >> 16) % 16);

}

int main(void)

{

Security();

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料