看到那些被刮(gua)去号碼牌,據爲己(jǐ)有的共享單車,作(zuo)爲工程師🐆的我,不(bu)禁想到自己加班(bān)開發的代碼可🌏能(neng)會☔被别人分🈲分鍾(zhong)讀出來破解,頗有(you)些擔心,眼前這些(xie)就♉是實實在在的(de)前“車”之鑒。

-
一級(ji)加密(可擦除);
-
二級(ji)加密(密碼加密);
-
三(sān)級加密(加“死密”)。
不(bu)同的芯片可能提(ti)供了一種或多種(zhong)級别的加密方🔞式(shì),根據不同的需求(qiú)靈活使用加密方(fang)案才可以做到遊(you)刃有餘。
一級加密(mi)
一級加密(mì)又分爲多種形式(shi),最常見的一種形(xing)式經常在芯🔞片手(shǒu)冊中叫做“Protect”。加密後(hòu)如果試圖讀出芯(xīn)片👄中的代碼,則會(huì)讀出全0x00,或者是全(quan)0xFF,甚至是随機數據(ju),但是通過某些特(tè)殊的方法,比如擦(cā)除或是解保護,就(jiù)可以将芯片重置(zhì)爲默認狀态。
另外(wai)一種常見于ARM芯片(pian),我們知道ARM芯片采(cǎi)用統一的編程接(jie)口SWD接口,某些ARM芯片(piàn)會提供兩個AP(Access Port),通過(guò)關閉訪問内部空(kōng)間的AP可以達到加(jia)密的目的。而如果(guǒ)想解🌐鎖,就要訪問(wen)另一條AP,這🌍條AP隻可(kě)以訪問一個寄存(cún)器,通過寫入該寄(ji)存器特定的數據(ju)就可以将芯片重(zhòng)置爲默認狀📞态。
還(hai)有一種加密方式(shì)和上面類似,隻不(bu)過采用了兩個編(bian)程接口,而不是同(tóng)一編程接口的兩(liǎng)條AP。
總之,一級加密(mi)就是讓你無法讀(dú)取芯片數據,而又(you)可🎯以通過擦除再(zai)次升級固件。

二級(ji)加密
如果你的産(chan)品需要升級固件(jiàn),但是你又不想别(bie)人也随意升級你(ni)的固件,可以使用(yong)這種加密方式。
二(er)級加密與一級加(jiā)密的不同之處在(zài)于,二級加密在加(jia)密時需要提供一(yi)段密碼,該密碼會(huì)保存到芯片内部(bu),而如果你想重置(zhì)🚶♀️芯片,則需要提供(gòng)這段密碼。這就❓防(fang)止了沒有權⛷️限(不(bu)知道密碼)的一方(fang)升級代碼。
二級加(jiā)密爲密碼保護的(de)加密,不過部分廠(chang)商的芯片🈲可能并(bing)沒有提供這種加(jiā)密方案。

三級加密(mì)
如果你的産品要(yao)批量生産了,也不(bú)用考慮升級固📞件(jian),可以使用這種加(jiā)密方式。
三級加密(mì)通過向芯片特定(dìng)位置寫入特定數(shu)據,或者🍓是直接✂️熔(róng)斷熔絲達到加密(mì)目的,這是個不可(ke)逆的過程,一旦加(jia)密之後,芯🤩片就無(wu)法再擦除,讀取或(huò)💰者燒錄,甚至仿♻️真(zhen)器也無法再連接(jie)芯片。
三級加密是(shi)一條不歸路,一旦(dàn)加密,芯片的固件(jian)就再也無法更👄改(gai),因此需要慎重再(zai)慎重。

這三種加密(mi)方式對産品的保(bǎo)護一級比一級嚴(yán)密,在不同的産🌈品(pin)上靈活的使用不(bu)同加密方式才可(kě)以保護好自己的(de)勞動成果而又不(bu)被這種保護所束(shu)縛。
加密方式盡管(guan)多種多樣,但最終(zhōng)都是對芯片進行(hang)一⛱️些特🔱定的操作(zuo),以達到保護代碼(ma)的目的。緻遠電子(zǐ)結合十餘年年的(de)💃🏻燒錄器研發經驗(yan),自主獨立研發的(de)P800系列編程🔞器能根(gen)據不同🐪的芯片靈(líng)活的設置其加密(mì)方式,并且通過内(nèi)部嚴格的流程控(kòng)制,有效的防止芯(xīn)片的誤加密,可爲(wèi)各大方案公司提(tí)供安🌈全、可靠的編(biān)程解決方案。
