你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何利用STM32的ID号进行加密?

[复制链接]
sasmike 提问时间:2015-1-9 09:31 /
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
看到许多朋友利用STM32的ID编码结合来进行产品加密,哪位能给个详细的思路啊?

收藏 1 评论4 发布时间:2015-1-9 09:31

举报

4个回答
Angel_YY 回答时间:2018-3-10 10:31:34
产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8

每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密.......

  1. static u32 CpuID[3];
  2. static u32 Lock_Code;

  3. void GetLockCode(void)
  4. {
  5. //获取CPU唯一ID
  6. CpuID[0]=*(vu32*)(0x1ffff7e8);
  7. CpuID[1]=*(vu32*)(0x1ffff7ec);
  8. CpuID[2]=*(vu32*)(0x1ffff7f0);
  9. //加密算法,很简单的加密算法
  10. Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
  11. }
复制代码

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

XinLiYF 回答时间:2018-3-10 13:41:05
可以做产品的激活码。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

stm1024 回答时间:2018-3-10 16:45:02
主要有几种功能吧:
1.防止逆向。这样的话即使别人把你的代码dump了,换个同样的MCU就不能工作了。具体思路可以自己设计一个算法。

2.售后凭据。在产品出厂前登记MCU的ID,这样后续服务的时候,作为购买了产品的凭据,例如安富莱的开发板就是这么做的。

3.作为产品的License。有点像软件的激活码的感觉,不过这种一般用处不大,毕竟硬件产品都销售给了客户。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

meifan119 回答时间:2020-3-26 17:13:44
1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870 2, 利用校验和或是crc对程序区进行校验,防止改程序  QQ9272078
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版