历史上的今天

今天是:2024年11月12日(星期二)

2021年11月12日 | stm8 唯一ID号加密方法.思路

发布者:BlissfulJourney 来源: eefocus关键字:stm8  唯一ID号  加密方法 手机看文章 扫描二维码
随时随地手机看文章

1.读出ID号


#if defined(STM8S103)

     #define     ID_BaseAddress         (0x4865)

#else//  defined(STM8S105)

     #define     ID_BaseAddress         (0x48CD)

#endif

void 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;}//错误写入      

         }        

         /////////////////////////////////////////////////////////////////////////

               其他任务...............

     }

         /////////////////////////////////////////////////////////////////////////



总结:

这样做还是能被破解的。但对方已经很难跟踪了.


如果破解者对芯片熟悉.他会根据ID号的地址!----毕竟芯片ID号的地址是固定的.找到对应的调用程序.加密时用到芯片ID号的地址。解密时也有用到芯片ID号的地址


所以只有对方熟.是能很快跟踪到加密/解密程序.而在解密程序入口就return出去!


这种方法已经很实用了.毕竟不是太专业的很难破


关键字:stm8  唯一ID号  加密方法 引用地址:stm8 唯一ID号加密方法.思路

上一篇:stm8S103单片机手轮DIY
下一篇:STM8单片机+RC522电路原理图+读写卡源代码

推荐阅读

5G 时代即将来临,各国紧锣密鼓开始筹备,市场看好将带动小型基地台 (Smallcell) 等基础建设需求增加、终端应用带动下,网通厂可望迎来爆发性商机,不过目前来看,无论是国内外均面临政策与建置成本考虑、 终端应用与技术发展待突破,加上贸易战干扰,短期内能否有大幅贡献,还值得观察。 中国大陆 5G 预计将于 2020 年正式商转,欧美各国、台湾也...
系列函数系列函数的定义在arch/arm/mach-s3c2410/gpio.c,相关的宏定义在include/asm-arm/arch-s3c2410/regs-gpio.h(1)void s3c2410_gpio_setpin(unsigned int pin, unsigned intto);设置相应GPIO口的输出值,例如:pin=S3C2410_GPG2,to=0,则设置S3C2410_GPG2的输出值为0;pin=S3C2410_GPG2,to=1,则设置S3C2410_GPG2的输出值为1。函数定义:v...
我们已对华为畅享Z 5G进行了分析,此次价值观我们将对元器件数量及其成本进行分析。 器件分析说明: 在开始分析之前,需要对元器件分析的一些概念和问题进行说明。我们是通过市场官方公开渠道购买机器,每个产品同一个元器件可能会有不一样的供应商,所以我们以购买拆解的机器为准...
ATmega64 的I/O 空间定义见 P329“ 寄存器概述” 。ATmega64所有的I/O及外设都被放置于I/O空间。所有的I/O位置都可以通过 LD/LDS/LDD 与 ST/STS/STD 指令来访问,在32 个通用工作寄存器和I/O 之间传输数据。 地址为0x00 - 0x1F的I/O寄存器还可用SBI和CBI指令直接进行位寻址,而SBIS和SBIC则用来检查某 一位的值。更多内容请参见指令集。使...

史海拾趣

问答坊 | AI 解惑

二极管的基础知识

二极管的开关特性 二极管的等效电路二极管的电容效应…

查看全部问答∨

38V-100A可直接并联大功率AC-DC变换器

38V/100A可直接并联大功率AC/DC变换器   摘要:介绍了一种38V/100A可直接并联的大功率AC/DC变换器。采用了有源功率因数校正技术以实现系统的高功率因数。DC/DC主电路采用电流型PWM芯片UC3846控制的半桥变换器,并提出了一种新的IGBT驱动 ...…

查看全部问答∨

大家来看看这个温度显示程序!!

这是一个温度显示程序,用的是DS18B20测温度,有几个问题我想问问大家。1、四个数组中的后三个数组(红色的)都表示是什么意思?尤其是最后一个,怎么还有一样的数值?2、小数位的值是怎么来的?我是个菜鸟,想半天也没想明白。 #include \"avr/io. ...…

查看全部问答∨

常用元件选择表

常用元件选择表…

查看全部问答∨

学技术从这里抓起

你知道有一个完美无缺的网站吗?不但网站首页点击连接不会弹出广告,而且还有很多精美的电子实验教程一整套,内容讲解十分细秘真实有涵养,有助于讯速提升技术。一切从零开始传授,加上丰富的 实验套件、电子电器。学习起来抻手一得,如鱼得水一样 ...…

查看全部问答∨

128M的mini2440烧入u-boot不好用

买了一个128M的FLASH的mini2440,将光盘自带的u-boot.bin烧入后,在超级终端里看不到任何信息。。。。。。。。 急!请大家帮帮忙,谢谢了~…

查看全部问答∨

(我是原创)矩阵式管理与设计时间

难得休息两天,回到工作,第一件事情是给媳妇帮忙翻译论文,而手头上的事情虽然充满着挑战,当总体还是应付的过来。由于很长一段的时间都是直接给国外做支持工作,对比国内项目的管理,让我生出了一种感受,同样的方法,同样的流程,到了我们这里一 ...…

查看全部问答∨

ads下怎么申请内存空间??

如题:在ADS1.2下(处理器pxa270) 我想用malloc可以吗 如: void main() {     char strTitle[] = "*************Pxa270Boot*************";     char *pch = (char *)malloc(strlen(strTile));     mem ...…

查看全部问答∨

ATXmega128A1开发板如何连接到电脑

呃,问老师老师貌似也没用过…

查看全部问答∨

msp430数据采集

关于msp430数据采集程序程序中,经过A/D转换后的数据无法经过232传送到PC,求前辈能否告诉我这个发送与接受的程序怎么写?谢谢啦!!!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved