為了防止大家的程序不被剽竊,本文給大家分享單片機(jī)加密的方法。
另外關(guān)于解密的方法可以參考這篇文章如何解密單片機(jī)內(nèi)程序?
常見(jiàn)加密方法
程序?qū)懕Wo(hù)
這種方法是最常見(jiàn),也是最簡(jiǎn)單的一種。現(xiàn)在的MUC基本都有寫(xiě)保護(hù)功能,但是這種容易被人破解。
燒斷數(shù)據(jù)總線
這個(gè)方法聽(tīng)起來(lái)不錯(cuò),但有損壞的風(fēng)險(xiǎn),同樣也能破解。
軟件加密
是一些防止別人讀懂程序的方法,單一的這種方法不能防止別人全盤(pán)復(fù)制,須配合其他的加密算法。
添加外部硬件電路的加密方法
這個(gè)方法效果看起來(lái)比較好,但會(huì)增加成本。
芯片打磨改型
這個(gè)方法改了型號(hào)能誤導(dǎo),但同時(shí)也增加成本,解密者一般也能分析出來(lái)。
通過(guò)通過(guò)聯(lián)網(wǎng)加序列號(hào)加密
通過(guò)連接網(wǎng)絡(luò),在你的MCU中生成一個(gè)唯一的隨機(jī)長(zhǎng)序列號(hào),并加入復(fù)雜的特種算法,或加入你們重新編碼的企業(yè)信息在里面,每個(gè)芯片內(nèi)不同,復(fù)制者只能復(fù)制到一個(gè)序列號(hào)。
通過(guò)MCU唯一的標(biāo)識(shí)加密
以前很多MCU沒(méi)有唯一標(biāo)識(shí)碼,現(xiàn)在的很多MCU都具有唯一標(biāo)識(shí)碼了。
這個(gè)方法比較好,簡(jiǎn)單省事,能很好的防止復(fù)制。
讀保護(hù) + 唯一ID加密
使用讀保護(hù) + 唯一ID的加密是最常用的一種方法,也是推薦大家使用的一種方法。
唯一ID 現(xiàn)在正規(guī)的芯片,每顆出廠的時(shí)候都帶了一個(gè)唯一標(biāo)識(shí)碼,這個(gè)號(hào)碼是唯一不重復(fù)的,比如STM32的就使用96位作為唯一ID。 和我們每個(gè)人的身份證號(hào)碼一樣,現(xiàn)在剛出生的嬰兒,上戶的時(shí)候就給他一個(gè)身份證號(hào),那么每個(gè)芯片一生產(chǎn)出來(lái),也就具備了這個(gè)身份證號(hào)。
加密原理 讀保護(hù)就不用說(shuō)了,增加被破解難度。 使用唯一ID加密的方法很多,這里說(shuō)一種簡(jiǎn)單的方法:出廠時(shí)程序讀取唯一ID并保存在一個(gè)位置,以后程序執(zhí)行之前,要讀取并匹配這個(gè)唯一ID,一致才執(zhí)行程序。 當(dāng)然,這種方法是最基礎(chǔ)的原理,但也存在被破解的風(fēng)險(xiǎn)。
所以,存儲(chǔ)的數(shù)據(jù),以及讀取驗(yàn)證這兩個(gè)地方需要進(jìn)一步添加一些算法。 這樣操作之后,即使別人讀取了你的程序,也是無(wú)法正常執(zhí)行。
編輯:jq
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634692 -
mcu
+關(guān)注
關(guān)注
146文章
17128瀏覽量
351002 -
STM32
+關(guān)注
關(guān)注
2270文章
10896瀏覽量
355755
原文標(biāo)題:STM32等單片機(jī)程序加密的方法
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論