论坛» 嵌入式开发» STM32

如何使用STM32芯片内部的唯一ID来加密?实际有用吗?

工程师
2021-02-20 23:19 1楼

大家好!我的程序需要烧录两次,第一次烧录的加密程序,然后将结果存入FLASH ,第二次是应用程序+解密 ,将解密结果与存入FLASH的结果比较是否成功。

uint32_t m_ui32AdressVar = 0XEA60;
static void board_get_uniid(uint32_t *IntDeviceSerial)
{
//不直接通过0x1FFFF7E8 地址读取UID,而是先通过数据算出UID地址,0x1FFFF7E8 = (((m_ui32AdressVar<<10) + 0x567EFD)<<3)
uint32_t *UniIdAdress;
UniIdAdress = (uint32_t*)(((m_ui32AdressVar<<10) + 0x567EFD)<<3);//0x1FFFF7E8 指针UniIdAdress

IntDeviceSerial[0] = *(__IO uint32_t*)(UniIdAdress) + 0x4321;
IntDeviceSerial[1] = *(__IO uint32_t*)(UniIdAdress+0x04) + 0x1234;//+0x04
IntDeviceSerial[2] = *(__IO uint32_t*)(UniIdAdress+0x08) + 0x5555;//+0x08

// IntDeviceSerial[0] = *(__IO uint32_t*)(0x1FFFF7E8);
// IntDeviceSerial[1] = *(__IO uint32_t*)(0x1FFFF7EC);//+0x04
// IntDeviceSerial[2] = *(__IO uint32_t*)(0x1FFFF7F0);//+0x08
}

通过上面这样处理意义大吗?如果直接读取UID,网友说反汇编很快就找到唯一ID地址并直接跳过了,我不知道通过上面这样转换一下,是不是没有那么容易破解。

希望各位探头,指教一个有效的、防止破解的方法。。。

先谢过大家了!


工程师
2021-02-20 23:23 2楼

肯定是有用的啦

高工
2021-03-09 08:44 3楼

谢谢分享!

菜鸟
2021-03-12 15:53 4楼

肯定有用的,但是需要看你的加密算法怎么处理

工程师
2021-03-13 14:44 5楼

谢谢分享

菜鸟
2021-10-20 15:20 6楼

破解方法.png

助工
2021-10-20 17:31 7楼

谢谢分享

工程师
2021-10-20 22:39 8楼

ID加密,还是有一定帮助的!

工程师
2021-12-20 10:58 9楼

感谢楼主分享

高工
2022-01-03 21:33 10楼

谢谢分享

共19条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]