首先先科普一下XCode簽名需要用到的理論知識(shí)
- RSA加密算法
一種非對(duì)稱的加密算法床绪,用于通信婆廊。這種算法通常是客戶端持有公鑰,服務(wù)端持有私鑰溺森∧脚溃客戶端利用公鑰加密窑眯。服務(wù)端可以用私鑰解密。服務(wù)利用私鑰加密數(shù)據(jù)發(fā)給客戶端医窿,客戶端可以利用公鑰解密出來(lái)磅甩。【簡(jiǎn)單來(lái)說(shuō)就是:公鑰加密的數(shù)據(jù)姥卢,利用私鑰可以解密卷要;私鑰加密的數(shù)據(jù),公鑰同樣能解密】 - 數(shù)字簽名
客戶端把【數(shù)據(jù)】独榴,并利用公鑰加密【數(shù)據(jù)的MD5】僧叉,然后把這【數(shù)據(jù)】與【機(jī)密后的MD5】發(fā)給服務(wù)器
服務(wù)器獲取到數(shù)據(jù)包后,先求出【數(shù)據(jù)】的MD5棺榔,并解密【數(shù)據(jù)的MD5】瓶堕,然后兩者進(jìn)行對(duì)比,如果不一樣就代表數(shù)據(jù)被截獲串改了
XCode如何將App安裝到手機(jī)的【首先這個(gè)流程會(huì)涉及到2次數(shù)字簽名】
1.Mac電腦本地生成公鑰和私鑰掷豺,把自己的公鑰打包成CSR文件發(fā)給服務(wù)器捞烟。
2.蘋(píng)果服務(wù)器利用自己的私鑰,對(duì) Mac電腦的公鑰進(jìn)行數(shù)字簽名当船,生成證書(shū)與描述文件题画,將證書(shū)與描述文件返回給Mac電腦。
3.Mac電腦利用私鑰對(duì)App的可執(zhí)行文件的Hash值進(jìn)行加密德频,生成App的簽名
4.Mac 將 App的可執(zhí)行文件苍息、App的簽名、證書(shū)【關(guān)聯(lián)Mac的私鑰】壹置、描述文件 打包成一個(gè)App傳輸給手機(jī)
5.手機(jī)將會(huì)使用蘋(píng)果的公鑰竞思,對(duì)證書(shū)解析,獲得Mac的公鑰钞护。利用Mac的公鑰盖喷,解析App簽名,獲取Hash值進(jìn)行認(rèn)證难咕,認(rèn)證成功則App成功安裝上课梳,認(rèn)證失敗就無(wú)法安裝。