利用STM32的唯一ID编码来加密

2019-07-21 02:48发布

最近在网上看到了利用STM32的ID编码结合来进行产品加密,觉得挺好的,拿来分享下:

产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8 每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密....... static u32 CpuID[3];
static u32 Lock_Code; void GetLockCode(void)
{
 //获取CPU唯一ID
 CpuID[0]=*(vu32*)(0x1ffff7e8);
 CpuID[1]=*(vu32*)(0x1ffff7ec);
 CpuID[2]=*(vu32*)(0x1ffff7f0);
 //加密算法,很简单的加密算法
 Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
ye781205
1楼-- · 2019-07-21 03:07
整天研究加密的,单片机领域国人有什么值得别人破解的程序吗?????
程序写的不好别说加密,就是你开源都不一定有人用,还是好好写代码来的实际。
不好意思,有点偏激。
炫色康康
2楼-- · 2019-07-21 06:06
ye781205 发表于 2015-4-29 19:48
整天研究加密的,单片机领域国人有什么值得别人破解的程序吗?????
程序写的不好别说加密,就是你开源 ...

但是成熟的产品利润是很丰厚的,并不是技术多难,你总不想别人直接抄个板,破译个程序直接量产吧
shimengdacs
3楼-- · 2019-07-21 07:26
烧程序以前用工具读出芯片ID,一进main函数处加入以下代码:

static u32 CpuID[3];
static u32 Lock_Code;

void GetLockCode(void)
{
 //获取CPU唯一ID
 CpuID[0]=*(vu32*)(0x1ffff7e8);
 CpuID[1]=*(vu32*)(0x1ffff7ec);
 CpuID[2]=*(vu32*)(0x1ffff7f0);
 //加密算法,很简单的加密算法
 Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
if(Lock_Code != 0x123456789ABC) return; //假设0x123456789ABC是当前芯片的ID
sdwhupk
4楼-- · 2019-07-21 07:44
 精彩回答 2  元偷偷看……
cornrn
5楼-- · 2019-07-21 09:26
破解也简单。。
fanghuiopenedv
6楼-- · 2019-07-21 11:37
这个早就弄过了。我是把id写入一个存贮芯片里去,上电的时候就读取一下 然后比较一下。可以通过串口写入id到存贮芯片。

一周热门 更多>