日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32的FLASH ID加密

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32的FLASH ID加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#define FLASH_ID_OFFSET 30000? ? //任意定義一個數

//把地址直接減去或者加上一個數是不要程序中直接出現這個地址

volatile u32 Flash_ID_addr[3]={??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x1FFFF7E8 - FLASH_ID_OFFSET,?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x1FFFF7EC + FLASH_ID_OFFSET,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x1FFFF7F0 - FLASH_ID_OFFSET

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? };

?

/**讀取STM32 FLASH ID**/

void Flash_Read_ID(u32 *p)
{
? u32 Addr;
? //因為不想讓程序在反匯編后直接找到這個地址,所以這個地址是運算出來

? //的,跟STM_ID_addr反運算,當然也可以用其他高級算法,不能讓編譯器

? //優化這個地址

? Addr = Flash_ID_addr[0] + FLASH_ID_OFFSET;
? p[0] = *(u32*)(Addr);

? Addr = Flash_ID_addr[1] - FLASH_ID_OFFSET;
? p[1] = *(u32*)(Addr);

? Addr = Flash_ID_addr[2] + FLASH_ID_OFFSET;
? p[2] = *(u32*)(Addr);
}

/*加密ID并保存*/
void Encrypted_ID(void)
{
? u32 FlashID[3],data;
? Flash_Read_ID(FlashID);
? //這里可以用其他一些高級算法,但減和加要一樣
??
? data=(FlashID[0]|FlashID[1]|FlashID[2])&(~FlashID[1])|(~FlashID[2]);

? FLASH_Unlock();
? FLASH_ErasePage(FLSAH_EN_ID_START_ADDR);
? FLASH_ProgramWord(FLSAH_EN_ID_START_ADDR,dat);//保存這個數
? FLASH_Lock();
}

/*比較加密ID,正確返回0 不正確返回1*/
u32 CMP_Encrypted_ID(void)
{
? u32 FlashID[3],data1,dat2;
? Flash_Read_ID(FlashID);
? //這里可以用其他高級算法,但減和加要一樣
? data1=(FlashID[0]|FlashID[1]|FlashID[2])&(~FlashID[1])|(~FlashID[2]);

? data2 = *(u32*)(FLSAH_EN_ID_START_ADDR);

? if(data1==data2) //相同
? ? return 0;
? else? ? ? ? ?//不同
? ? return 1;
}

//ID加密控制
if(CMP_Encrypted_ID())
{
? //生產時給一些條件,條件滿足就對ID加密,加密完后,也可以讓它自宮
? if(****)
? {
? ? Encrypted_ID();
? ? .....
? ? 自宮
? }
}

//校驗ID是否正確
if(CMP_Encrypted_ID())
{
? 程序來到這里當然不正確了,不要讓程序死在這里。一個系統肯定有

? 一些參數才能運行的,你可以改變一些參數,可以讓系統有時正常有

? 時不正常。

}

?

轉載于:https://www.cnblogs.com/dongry/p/9938557.html

總結

以上是生活随笔為你收集整理的STM32的FLASH ID加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。