將任意大小的數據經過散列算法變換成固定長度的字符,一般爲32
位的固定字符,又稱hash
值。特色:算法公開、不可逆、結果定長。常見的MD5
加密。算法
公鑰加密,私鑰解密,加密過程須要經歷不少計算,所以效率很低。明文->公鑰->密文 密文->私鑰->明文
。 支付寶,微信等支付過程須要的簽名也是這一原理實現。數字簽名流程以下:安全
爲避免垃圾應用的安裝,破壞應用生態,蘋果採用更高級的加密,對應用進行雙層代碼簽名。 一、首先在Mac
端生成一對公私鑰(Xcode
自動生成)爲公鑰M
和私鑰M
; 二、蘋果有一對固定的公私鑰,私鑰在蘋果後臺,公鑰在每一個iOS
系統中,稱公鑰A
,私鑰A
; 三、把公鑰M和開發者信息,上傳到蘋果後臺(CSR文件
),用蘋果後臺裏的私鑰A
去簽名公鑰M
,獲得一個含有公鑰M
和簽名的數據包
,該包即爲證書
。微信
描述文件:包含證書、APPID、設備id、打包後用來證實咱們的程序的安全性和合法性。如經常使用的測試包,須要添加測試人員的udid
,蘋果須要對其驗證後,相應的設備才能安裝。簽名原理如圖:app