什麼是包名?
每個 Android 應用均有一個唯一的應用 ID。安卓以 Java 包的形式管理應用。具體說明見官方文檔:
https://developer.android.com/studio/build/application-id.html
什麼是簽名文件?
安卓 apk 需要開發者進行簽名。.開發調試過程中,IDE(android studio,Eclipse) 會使用默認的 debug 簽名文件進行簽名。但發佈 apk 時必須使用,自己生成的簽名文件進行簽名。簽名文件確保了開發者對
該應用的所有權,因爲不同簽名文件簽名的 apk 不能覆蓋原有的。該文件擴展名爲 jks.
如何生成新的簽名文件
您可以使用 Android Studio 生成應用簽名或上傳密鑰,步驟如下:
- 在菜單欄中,點擊 Build > G enerate Signed APK 。
- 從下拉菜單中選擇一個模塊,然後點擊 Next 。
- 點擊 Create new 以創建一個新密鑰和密鑰庫。
- 在 New Key Store 窗口上,爲您的密鑰庫和密鑰提供以下信息,如圖 3 所示。
密鑰庫
-
- Key store path :選擇創建密鑰庫的位置。
-
- Passw ord :爲您的密鑰庫創建並確認一個安全的密碼。
密鑰
-
- Alias :爲您的密鑰輸入一個標識名。
-
- Passw ord :爲您的密鑰創建並確認一個安全的密碼。此密碼應當與您爲密鑰庫選擇的密碼不同
- Validity (years) :以年爲單位設置密鑰的有效時長。密鑰的有效期應至少爲 25 年, 以便您可以在應用的整個生命期內使用相同的密鑰簽署應用更新。
- Certificate :爲證書輸入一些關於您自己的信息。此信息不會顯示在應用中,但會作爲 APK 的一部分包含在您的證書中。
填寫完表單後,請點擊 O K 。
具體說明見官方文檔:
https://developer.android.com/studio/publish/app-signing.html
什麼是簽名 MD5? 如何獲取
每個簽名文件都有一個數字指紋。相當於是公鑰,同一個簽名文件的指紋是一樣的,不同的簽名文件指紋不一樣。可以通過檢查這個指紋確定是不是使用的同一個簽名文件。
命令行輸入 keytool –list –v –keystore <簽名文件路徑>
接入第三方服務爲什麼需要簽名 MD5?
安卓的應用是以包名做爲唯一 ID 的。大多數第三方服務也是以包名做爲單位進行授權的。因爲包名是開發者填寫的,所以別的開發者也可以寫個應用來冒充其他人的應用。第三方服務會涉及到用戶的信息,使用過程中也有費用產生。所以爲了保護 app 不會他人冒充,第三方對應用的簽名進行校驗。剛纔也提到了,因爲 MD5 算法的不可逆性,可以當做公鑰使用。用戶在申請時在後臺填寫簽名的MD5 值,發佈/測試時,使用該簽名文件。第三方服務在運行時會對當前應用的簽名 MD5 進行校驗,如果信息不一致會拒絕服務。