STM8唯一ID号加密方法

来源:本站
导读:目前正在解读《STM8唯一ID号加密方法》的相关信息,《STM8唯一ID号加密方法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《STM8唯一ID号加密方法》的详细说明。
简介:本文主要讲述的是STM8唯一ID号加密方法

1.读出ID号#if defined(STM8S103)     #define     ID_BaseAddress         (0x4865)#else//  defined(STM8S105)     #define     ID_BaseAddress         (0x48CD)#endifvoid GetUniqueID(unsigned char *p){    unsigned char i;    unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);        for(i=0;i!=12;i++){*p++=*pIDStart++;}}2.把读出的ID号生成其他数据。不一定就是12字节的!并保存在内部EEPROM。在这个模块准备2个函数.一个用于加密.一个用于解密void StmWriteUniqueID(unsigned char Addr){    unsigned char i;    FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);    while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET)FLASH_Unlock(FLASH_MEMTYPE_DATA);    unsigned char *pEE=(unsigned char *)(FLASH_DATA_START_PHYSICAL_ADDRESS+(u32)Addr);    unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);    for(i=0;i!=6;i++)//由12字节生成12*N个字节    {        *pEE++=第1种算法,商业原因.我的算法就不公开了.大家可以准备一个数组查表        while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);          *pEE++=第2种算法,商业原因.我的算法就不公开了。大家可以准备一个数组查表        while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);          。。。。        第N种算法    }              }//解密函数unsigned char StmCheckUniqueID(unsigned char Addr)3.主函数里面设置一个时间最好设置长一点。半个钟或其他,让人家难跟踪    while(1)    {        其他任务...............        /////////////////////////////////////////////////////////////////////////         if((Flag&FLAG_CHECK_ID)==FLAG_CHECK_ID)        {            Flag&=~FLAG_CHECK_ID;             if(StmCheckUniqueID(UniqueIDAddress)==1){IsIDCorrect=0x01;}//正确写入            else{IsIDCorrect=0x00;}//错误写入               }                /////////////////////////////////////////////////////////////////////////              其他任务...............    }

提醒:《STM8唯一ID号加密方法》最后刷新时间 2024-03-14 01:10:14,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《STM8唯一ID号加密方法》该内容的真实性请自行鉴别。