加密芯片SMEC98SP的使用方法
的有关信息介绍如下:介绍了加密芯片SMEC98SP的使用方法,设计到方案中,防止被破解公司破解,窃取了自己的劳动果实
读取加密芯片ID号,这个ID号可用来做唯一ID身份识别,可以设计到加密方案中。
代川艳码如下:
unsigned char Read_UID(unsigned char * UID)
{
uchar ret;
uchar iic_addr;
uchar len;
iic_addr = 0x00;
iic_buff = 0x83;
iic_buff = 0x00;
iic_buff = 0x00;
iic_buff = 0x0c; //一共是0x0c个字节
len = iic_buff;
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; //读取成功
}
读取随机数,随机数是参与密码运算的重要过程数据,每次都不一样的数据传输,破解者无法柱秤获得久恩巨规律。
//读8字节随机数,返回:90 00 data1 data2.....data8
unsigned char Read_random(unsigned char *random)
{
uchar ret;
uchar iic_addr;
uchar len;
iic_addr = 0x00;
iic_buff = 0x84;
iic_buff = 0x00;
iic_buff = 0x00;
iic_buff = 0x08; //一共是0x08个字节
len = iic_buff;
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; //读取成功
}
密码认证,密文传输。
unsigned char PIN_authentication(unsigned char *ret_data)
{
uchar ret;
uchar iic_addr;
iic_addr = 0x00;
iic_buff = 0x70;
iic_buff = 0x00;
iic_buff = 0x00;
iic_buff = 0x08; //
memcpy(&iic_buff,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; //读取成功
}
添加一个算法
unsigned char circumference(unsigned char radius, unsigned char *ret_data)
{
uchar ret;
uchar iic_addr;
iic_addr = 0x00;
iic_buff = 0x72;
iic_buff = 0x00;
iic_buff = 0x00;
iic_buff = 1; //
iic_buff = 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; //读取成功
}