打印
[STM32F1]

如何加密

[复制链接]
1446|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2018-10-11 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序开发完毕了,现在开始考虑量产的事情了。知道STM32的产品有ID可以用于加密,不知道具体应该如何操作
沙发
jiajs| | 2018-10-11 18:29 | 只看该作者
硬件上应该买一个烧片子的座子吧?

使用特权

评论回复
板凳
shimx|  楼主 | 2018-10-11 18:32 | 只看该作者
软件应该用什么来搞?

使用特权

评论回复
地板
lizye| | 2018-10-11 18:38 | 只看该作者

这个好多人都不会的,实际上只可防君子,没法防小人啊。

使用特权

评论回复
5
shimx|  楼主 | 2018-10-11 18:41 | 只看该作者
恩,知道是这么回事,具体怎么操作啊?请指点。

使用特权

评论回复
6
heweibig| | 2018-10-11 18:45 | 只看该作者
用了那么长时间stm32f103,真的不知道该如何加密

使用特权

评论回复
7
lizye| | 2018-10-11 18:52 | 只看该作者
st-link下载可以读保护!

使用特权

评论回复
8
shimx|  楼主 | 2018-10-11 18:58 | 只看该作者

具体怎么做? 看了一些资料,好像说能自动读取ID,生成滚码,是不是这样?

使用特权

评论回复
9
yszong| | 2018-10-11 19:01 | 只看该作者
烧断熔丝,然后就不可以读了,也没法修改

使用特权

评论回复
10
jiaxw| | 2018-10-11 19:04 | 只看该作者
怎样给加密,这真是一项有意义的事情啊

使用特权

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

使用特权

评论回复
12
zhenykun| | 2018-10-11 19:17 | 只看该作者
但是告诉你句话,ID现在已经费了。已经被**了,可以硬件改写了。

使用特权

评论回复
13
shimx|  楼主 | 2018-10-11 19:20 | 只看该作者
听着感觉现在加密好像没用多大意义了?另外收费是怎么收啊?

使用特权

评论回复
14
spark周| | 2018-10-11 19:27 | 只看该作者
用ST LINK就可以了

使用特权

评论回复
15
shimx|  楼主 | 2018-10-11 19:31 | 只看该作者
网上搜的,看看能用不

烧程序以前用工具读出芯片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
wyjie| | 2018-10-11 19:35 | 只看该作者
然并卵 UID修改都是好几百年前的传说了

使用特权

评论回复
17
jiajs| | 2018-10-11 19:43 | 只看该作者
可不可以修改芯片内部的ID实现加密呢?

使用特权

评论回复
18
zhaoxqi| | 2018-10-11 19:49 | 只看该作者
是不是得对立面的id操作呢?

使用特权

评论回复
19
zhaoxqi| | 2018-10-11 19:53 | 只看该作者

产品唯一的身份标识非常适合:
● 用来作为序列号(例如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);

使用特权

评论回复
20
wyjie| | 2018-10-11 19:58 | 只看该作者
如果你的是联网的比较好,这样可以通过那个验证ID,然后发送一段激活信息。激活系统。

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝