iOS App 簽名的原理

2021-10-24 11:35:27 字數 895 閱讀 7510

數字簽名的作用是我對某乙份資料打個標記,表示我認可了這份資料(籤了個名),然後我傳送給其他人,其他人可以知道這份資料是經過我認證的,資料沒有被篡改過。

首先用一種演算法,算出原始資料的摘要。需滿足 a.若原始資料有任何變化,計算出來的摘要值都會變化。 b.摘要要夠短。這裡最常用的演算法是md5。

生成乙份非對稱加密的公鑰和私鑰,私鑰我自己拿著,公鑰公布出去。

對乙份資料,算出摘要後,用私鑰加密這個摘要,得到乙份加密後的資料,稱為原始資料的簽名。把它跟原始資料一起傳送給使用者。

使用者收到資料和簽名後,用公鑰解密得到摘要。同時使用者用同樣的演算法計算原始資料的摘要,對比這裡計算出來的摘要和用公鑰解密簽名得到的摘要是否相等,若相等則表示這份資料中途沒有被篡改過,因為如果篡改過,摘要會變化

在你的 mac 開發機器生成一對公私鑰,這裡稱為公鑰l,私鑰l。l:local

把公鑰 l 傳到蘋果後台,用蘋果後台裡的私鑰 a 去簽名公鑰 l。得到乙份資料報含了公鑰 l 以及其簽名,把這份資料稱為證書。

在安裝時,ios 系統取得證書,通過系統內建的公鑰 a,去驗證 embedded.mobileprovision 的數字簽名是否正確,裡面的證書簽名也會再驗一遍。

開發者證書從簽名到認證最終蘋果採用的流程大致是這樣,還有一些細節像證書有效期/證書型別等就不細說了。

概念和操作

上面的步驟對應到我們平常具體的操作和概念是這樣的:

第 1 步對應的是 keychain 裡的 「從證書頒發機構請求證書」,這裡就本地生成了一對公私鑰,儲存的 certificatesigningrequest 就是公鑰,私鑰儲存在本地電腦裡。

第 2 步蘋果處理,不用管。

第 6 – 7 步的打包和驗證都是 xcode 和 ios 系統自動做的事。

這裡再總結一下這些概念:

ios app 開發中ipa重新簽名步驟介紹

打包in house實際上是乙個將ipa應用程式重新簽名的乙個過程。一般來說打包in house需要以下東西 mac機器,一般打包ipa都是在mac機上打包的,乙個字尾名為.mobileprovision概要配置檔案,乙個字尾名為p12的證書,還有乙個字尾名為.cer的證書,還有就 是你想重新簽名的...

ios app 開發中ipa重新簽名步驟介紹 備

如何給ipa重新簽名 inhouse.mobileprovision 是你要用來簽名的provision檔案 iphone distribution yourcompanyname 是指該簽名對應的證書的名字。這個可以在keychain中找到 聽說 企業證書打完包 進行 重新簽名後的 ipa 可以安...

android apk簽名原理

public signature getpackagesignature return null public void getsinginfo catch exception e private void parsesignature byte signature catch certificat...