加密芯片SMEC98SP的使用方法

 时间:2024-10-12 04:46:26

1、读取加密芯片ID号,这个ID号可用来做唯一ID身份识别,可以设计到加密方案中。代码如下:unsigned char Read_UID(unsigned char * UID){ uchar ret; uchar iic_addr; uchar len; iic_addr = 0x00; iic_buff[0] = 0x83; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x0c; //一共是0x0c个字节 len = iic_buff[3]; ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4); if(ret)//出错 { return 1; }// delay_nms(1); ret = IIC_ReadWithAddr(iic_addr | 0x1, UID, (len+2)); if(ret) { return 1; } return 0; //读取成功}

2、读取随机数,随机数是参与密码运算的重要过程数据,每次都不一样的数据传输,破解者无法获得规律。//读8字节随机数,返回:90 00 data1 data2.....data8unsigned char Read_random(unsigned char *random){ uchar ret; uchar iic_addr; uchar len; iic_addr = 0x00; iic_buff[0] = 0x84; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x08; //一共是0x08个字节 len = iic_buff[3]; ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4); if(ret)//出错 { return 1; }// delay_nms(5); ret = IIC_ReadWithAddr(iic_addr | 0x1, random, (len+2)); if(ret) { return 1; } return 0; //读取成功}

3、密码认证,密文传输。unsigned char PIN_authentication(unsigned char *ret_data){ uchar ret; uchar iic_addr; iic_addr = 0x00; iic_buff[0] = 0x70; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x08; // memcpy(&iic_buff[4],PinKey,8); ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4+8); if(ret)//出错 { return 1; }// delay_nms(5); ret = IIC_ReadWithAddr(iic_addr | 0x1, ret_data, 2); if(ret) { return 1; } return 0; //读取成功}

4、添加一个算法unsigned char circumference(unsigned char radius, unsigned char *ret_data){ uchar ret; uchar iic_addr; iic_addr = 0x00; iic_buff[0] = 0x72; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 1; // iic_buff[4] = radius; ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4+1); if(ret)//出错 { return 1; }// delay_nms(5); ret = IIC_ReadWithAddr(iic_addr | 0x1, ret_data, 3); if(ret) { return 1; } return 0; //读取成功}

  • 耐酸碱自吸泵流量变小的3个重要原因!
  • 6种排毒水果功效大揭秘
  • 螺蛳粉店怎么加盟
  • 全球十大唯美海岸美得让人窒息
  • 春光无限好的诗名
  • 热门搜索
    初中英语手抄报图片 关于诗词的手抄报 我心中的祖国手抄报 五一劳动节手抄报简单 文明交通我见证手抄报 五一英语手抄报 诚实守信手抄报图片 我健康我快乐的手抄报 儿童手抄报模板 阅读手抄报的内容