最近在网上看到了利用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); } |
参考 本论坛 [分享] 你辛苦做出来的id软件加密就这么轻松被改了
https://www.stmcu.org.cn/module/forum/thread-622269-1-1.html
地址是:0x1FFF7A10
那最新的办法是哪个