關於Android數字簽名

2021-07-14 07:13:30 字數 1091 閱讀 2686

android通過數字簽名來標識應用程式的作者和在應用程式之間建立信任關係,不是用來決定終端使用者可以安裝哪些應用程式。

這個數字簽名由應用程式的作者完成,並不需要權威的數字證書簽名機構認證,它只是用來讓應用程式包自我認證的。 

數字簽名的兩種模式

我們都知道android系統不會安裝執行任何一款未經數字簽名的apk程式,無論是在模擬器上還是在實際的物理裝置上。所以我們會有乙個疑問,為何在日常開發過程中我沒有進行任何簽名的操作,程式都會在模擬器和真機上執行?下面我們來講講

apk程式的兩種模式: 除錯模式(debug mode)和發布模式(release mode)

1. 除錯模式(debug mode)  :  在除錯模式下, adt會自動的使用debug金鑰為應用程式簽名,因此我們可以直接執行程式。

debug金鑰:    乙個名為debug.keystore的檔案

存放位置 :

c:\users\xiaopeng\.android\debug.keystore        xiaopeng對應替換為自己作業系統的使用者名稱

兩個風險:

debug簽名的應用程式有這樣兩個風險:

1)debug簽名的應用程式不能在android market上架銷售,它會強制你使用自己的簽名;

2)debug.keystore在不同的機器上所生成的可能都不一樣,就意味著如果你換了機器進行apk版本公升級,那麼將會出現上面那種程式不能覆蓋安裝的問題。

不要小視這個問題,如果你開發的程式只有你自己使用,當然無所謂,解除安裝再安裝就可以了。但要是你的軟體有很多使用客戶,這就是大問題了,就相當於軟體不具備公升級功能! 

所以一定要有自己的數字證書來簽名;

2. 發布模式(release mode) : 

當要發布程式時,開發者就需要使用自己的數字證書給apk包簽名

使用自己的數字證書給apk簽名的兩種方法:

(1)通過dos命令來對apk簽名。

(2)使用adt export wizard進行簽名

注意:

發布乙個android程式

必須要使用乙個合適的私鑰生成的數字證書來給程式簽名,而不能使用adt外掛程式或者ant工具生成的除錯證書來發布。

關於數字簽名和URL簽名

數字簽名 其實數字簽名的概念很簡單。大家知道,要確保可靠通訊,必須要解決兩個問題 首先,要確定訊息的 確實是其申明的那個人 其次,要保證資訊在傳遞的過程中不被第三方篡改,即使被篡改了,也可以發覺出來。所謂數字簽名,就是為了解決這兩個問題而產生的,它是對前面提到的非對稱加密技術與數字摘要技術的乙個具體...

數字簽名簽名概述

數字簽名的技術流程描述 1 傳送者使用摘要演算法對傳送資訊產生資訊摘要 2 傳送者使用自己的私鑰對資訊摘要進行簽名 3 傳送者將資訊本身和已簽名的摘要一起傳送出去 4 接收者使用相同的摘要演算法對資訊本身計算資訊摘要 5 接收者使用傳送者的公鑰對簽名的摘要就行驗籤,獲得資訊傳送者的資訊摘要 6 接收...

Android 數字簽名學習筆記

2 使用adt export wizard進行簽名 如果沒有數字證書可能需要生成數字證書 使用keytool和jarsigner給程式簽名 命令 keytool genkey v keystore android.keystore alias android keyalg rsa validity ...