一、ID获取
34 设备电子签名
电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程 的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器 的特性自动匹配。
34.1 唯一设备 ID 寄存器(96 位)
唯一设备标识符最适合:
● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)
● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以
提高 Flash 中代码的安全性
● 激活安全自举过程等
96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远 不能改变这些位。
96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接 起来。
基址:0x1FFF 7A10
程序:
static u32 Lock_Code;
void GetLockCode(void)
{
//获取CPU唯一ID
CpuID[0]=*(vu32*)(0x1fff7a10);
CpuID[1]=*(vu32*)(0x1fff7a14);
CpuID[2]=*(vu32*)(0x1fff7a18);
printf("nn %x %x %xnn",CpuID[2],CpuID[1],CpuID[0]);
//加密算法,很简单的加密算法
Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
运行结果:
1)keil memroy窗口显示 ID地址处数据:
2)串口打印:
由上可知:该stm32芯片的96位 iD号 0x39353633 32334712 0025002a
二、加密措施
简单方法: 主程序运行前,对比读取ID号 与设置ID是否一致。问题:每个stm32都需要单独配置ID比较值.如何解决?
参考:http://www.61ic.com/Technology/embed/201311/50853.html,待完善。
上一篇:stm32数据类型
下一篇:STM32 数据类型定义
推荐阅读
史海拾趣
就是我的wince设备在被别的蓝牙设备(如蓝牙手机)搜索到的时候会有一个名称, 我现在想再本地去修改这个名称,该怎么做啊? 看了 MSDN 关于蓝牙这块的东西,始终没有找到,google也没有相关的介绍,求大家帮忙, 给个提示也行啊!… 查看全部问答∨ |
电脑中毒了,总是跳出某一块内存(一串数字标出来的)can\'t read,而且只要我打开无线链接,同寝室的网都一下子卡住了,似乎特别的敏感(我原来一直都是用无线上网的,也从来没有出现过这种情况),我查看资源管理器,发现资源管理 ...… 查看全部问答∨ |
大家好,第一次发帖。 最近在编写WinCE6.0下的驱动程序,想要在驱动程序中直接对文件进行操作,而不想在用户程序中读文件再用WriteFile或DeviceIOControl将数据传到驱动程序中,但没找到对应的API,求高手指导。谢谢了… 查看全部问答∨ |
|
1、因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。 2、当定时器1被用作波特率发生器时,波特率工作于方式1 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 新突破!超高速内存,为英特尔至强6性能核处理器加速
- 将vRAN站点整合至单服务器,助力运营商降低总体拥有成本
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?