打印
[STM32F1]

如何加密

[复制链接]
1547|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小猫咪|  楼主 | 2016-8-31 21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

源程序开发完毕了,现在开始考虑量产的事情了。知道STM32的产品有ID可以用于加密,不知道具体应该如何操作
沙发
kangzj| | 2016-8-31 21:13 | 只看该作者
硬件上应该买一个烧片子的座子吧?

使用特权

评论回复
板凳
小小猫咪|  楼主 | 2016-8-31 21:14 | 只看该作者
软件应该用什么来搞?

使用特权

评论回复
地板
zwll| | 2016-8-31 21:14 | 只看该作者
这个好多人都不会的,实际上只可防君子,没法防小人啊。

使用特权

评论回复
5
小小猫咪|  楼主 | 2016-8-31 21:14 | 只看该作者
恩,知道是这么回事,具体怎么操作啊?请指点。

使用特权

评论回复
6
juventus9554| | 2016-8-31 21:14 | 只看该作者
用了那么长时间stm32f103,真的不知道该如何加密

使用特权

评论回复
7
司徒老鹰| | 2016-8-31 21:14 | 只看该作者
st-link下载可以读保护!

使用特权

评论回复
8
小小猫咪|  楼主 | 2016-8-31 21:15 | 只看该作者
具体怎么做? 看了一些资料,好像说能自动读取ID,生成滚码,是不是这样?

使用特权

评论回复
9
llljh| | 2016-8-31 21:15 | 只看该作者
烧断熔丝,然后就不可以读了,也没法修改

使用特权

评论回复
10
dingy| | 2016-8-31 21:15 | 只看该作者
怎样给加密,这真是一项有意义的事情啊

使用特权

评论回复
11
pengf| | 2016-8-31 21:15 | 只看该作者
用烧写器首先读出ID,烧写程序时候通过一定运算存在flash里。在程序运行是用读取的ID一定运算之后 与你存储的 的加密ID进行对比。

使用特权

评论回复
12
renyaq| | 2016-8-31 21:15 | 只看该作者
但是告诉你句话,ID现在已经费了。已经被**了,可以硬件改写了。

使用特权

评论回复
13
小小猫咪|  楼主 | 2016-8-31 21:16 | 只看该作者
听着感觉现在加密好像没用多大意义了?另外收费是怎么收啊?

使用特权

评论回复
14
supernan| | 2016-8-31 21:17 | 只看该作者
用ST LINK就可以了

使用特权

评论回复
15
栩栩如生| | 2016-8-31 21:17 | 只看该作者
网上搜的,看看能用不

烧程序以前用工具读出芯片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

使用特权

评论回复
16
houcs| | 2016-8-31 21:17 | 只看该作者

然并卵 UID修改都是好几百年前的传说了

使用特权

评论回复
17
liuzaiy| | 2016-8-31 21:17 | 只看该作者
可不可以修改芯片内部的ID实现加密呢?

使用特权

评论回复
18
yinxiangh| | 2016-8-31 21:18 | 只看该作者
是不是得对立面的id操作呢?

使用特权

评论回复
19
小小猫咪|  楼主 | 2016-8-31 21:18 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
20
zhuomuniao110| | 2016-8-31 21:20 | 只看该作者
产品唯一的身份标识非常适合:
● 用来作为序列号(例如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);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

313

主题

3014

帖子

6

粉丝