[STM32F1]

如何加密

[复制链接]
1346|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 | 显示全部楼层

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

使用特权

评论回复
shimx|  楼主 | 2018-10-11 18:41 | 显示全部楼层
恩,知道是这么回事,具体怎么操作啊?请指点。

使用特权

评论回复
heweibig| | 2018-10-11 18:45 | 显示全部楼层
用了那么长时间stm32f103,真的不知道该如何加密

使用特权

评论回复
lizye| | 2018-10-11 18:52 | 显示全部楼层
st-link下载可以读保护!

使用特权

评论回复
shimx|  楼主 | 2018-10-11 18:58 | 显示全部楼层

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

使用特权

评论回复
yszong| | 2018-10-11 19:01 | 显示全部楼层
烧断熔丝,然后就不可以读了,也没法修改

使用特权

评论回复
jiaxw| | 2018-10-11 19:04 | 显示全部楼层
怎样给加密,这真是一项有意义的事情啊

使用特权

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

使用特权

评论回复
zhenykun| | 2018-10-11 19:17 | 显示全部楼层
但是告诉你句话,ID现在已经费了。已经被**了,可以硬件改写了。

使用特权

评论回复
shimx|  楼主 | 2018-10-11 19:20 | 显示全部楼层
听着感觉现在加密好像没用多大意义了?另外收费是怎么收啊?

使用特权

评论回复
spark周| | 2018-10-11 19:27 | 显示全部楼层
用ST LINK就可以了

使用特权

评论回复
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

使用特权

评论回复
wyjie| | 2018-10-11 19:35 | 显示全部楼层
然并卵 UID修改都是好几百年前的传说了

使用特权

评论回复
jiajs| | 2018-10-11 19:43 | 显示全部楼层
可不可以修改芯片内部的ID实现加密呢?

使用特权

评论回复
zhaoxqi| | 2018-10-11 19:49 | 显示全部楼层
是不是得对立面的id操作呢?

使用特权

评论回复
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);

使用特权

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

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝