手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

加密芯片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; //读取成功}

© 手抄报圈