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

如何利用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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版