Android中的簽名驗證(1)

來源:互聯網
上載者:User

      Android系統要求所有安裝的應用程式必需有數位簽章。否則系統將不會安裝和運行沒有合適的簽名許可的程式。無論是在裝置還是模擬器上都必須給你的程式建立簽名才可以調試運。這是所有Android開發人員都懂得的道理。但是什麼是數位簽章,其中的原理是什麼呢?我並不瞭解。所有趁有空,查了查相關的知識。

     在介紹Android,我們要瞭解密碼學的基本知識:加密。請看對加密技術的一點總結(1)

     而在Gphone上的數位簽章不僅存在於所有安裝的應用程式上,在使用updata.zip刷機的時候,刷機包也用到了簽名驗證。

 

首先看看apk是如何進行簽名:

 

(1)必備工具:Sun官方網站下載JDK,安裝後產生的keytool和jarsigne兩個系統工具。

 

                   而對於兩個工具和keystore的介紹請看:jdk工具keytool和jarsigner協助Part1(jdk keytool&jarsigner tool manual)
  和 jdk工具keytool和jarsigner協助Part2(jdk keytool&jarsigner tool manual)

                   這兩篇講得非常的透徹,感謝NCNC

 

(2)產生keystore

$keytool -genkey -alias tekkaman.keystore -keyalg
 RSA -validity 20000 -keystore tekkaman.keystore
輸入keystore密碼: 
再次輸入新密碼:
您的名字與姓氏是什嗎?
  [Unknown]:  tekkaman
您的組織單位名稱是什嗎?
  [Unknown]:  NERV
您的組織名稱是什嗎?
  [Unknown]:  NERV
您所在的城市或地區名稱是什嗎?
  [Unknown]:  Linux
您所在的州或省份名稱是什嗎?
  [Unknown]:  GNU
該單位的兩字母國家代碼是什麼
  [Unknown]:  CN
CN=tekkaman, OU=NERV, O=NERV, L=Linux, ST=GNU, C=CN 正確嗎?
  [否]:  是

輸入<tekkaman.keystore>的主密碼
    (如果和 keystore 密碼相同,按斷行符號):

 

 

(3)使用你產生的keystore對apk包簽名

$jarsigner -verbose -keystore tekkaman.keystore -
signedjar tekkaman_signed.apk tekkaman.apk tekkaman.keystore
輸入密鑰庫的口令短語:
   正在添加: META-INF/TEKKAMAN.SF
   正在添加: META-INF/TEKKAMAN.RSA
   正在簽名: ......

   ......

下次介紹如何產生自己的加密檔案,並使用這些檔案對updata.zip刷機包簽名!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.