在日常使用STM32的过程中,很多人会遇到需要修改ID的情况,面对这一问题常常感到无从下手。为此,本文将为大家介绍一种有效的解决方法,希望能为遇到类似困扰的朋友提供一些帮助。
1、 首先,将影片ID通过MD5算法生成摘要,再使用RSA算法对摘要进行加密,生成密文并存储在外部EEPROM中,私钥由自己保管,公钥则存入单片机内。
2、 每次启动时,用公钥解密密文,将解得的明文与当前读取的单片机ID的MD5值进行比对,即便更改ID也无济于事。
3、 首先从指定地址读取STM32的ID号,再将获取的十六进制数据转换为所需格式,最终以六字节的形式输出表示结果。
4、 软件中,STM32的唯一ID基地址为0x1FFF F7E8,位于内存映射的系统内存区域,该区域同时还存放了boot loader。
5、 如果唯一ID存在被破解和修改的风险,可以考虑将其概念扩展,将从0x1FFF F000到0x1FFF FFFF的整个区域视为一个整体的唯一ID加以使用,从而有效解决问题。
6、 也可采用不同层级的安全方案,例如将唯一ID设为ID1,将0x1FFF F800~0x1FFF F80F(即选项字节)作为ID2,而0x1FFF F80F~0x1FFF FFFF(保留区域)则作为ID3。
<!-- 非定向300*250按钮 17/09 wenjing begin -->
<!-- 非定向300*250按钮 end -->
</div>
未经允许不得转载:紫竹林-程序员中文网 » STM32修改ID方法解析