Apk 簽名的那些事
Android不允許沒有簽名的apk安裝到手機上,應用的簽名類似於應用的身份證
簽名更大的作用是為了保護版權,如果應用的包名相同而簽名不一致,則無法覆蓋安裝,必須先解除安裝再安裝
建立一個簽名
其中
金鑰釋出組織單元
和金鑰釋出組織
不一定要填寫,其他的要填寫
為了拯救糾正症患者,在這裡附上簽名的示例
在 Gradle 中配置簽名
android {
signingConfigs {
release {
keyAlias '金鑰別稱'
keyPassword '金鑰密碼'
storeFile file('E:/MySign.jks')
storePassword '金鑰庫密碼'
}
debug {
keyAlias '金鑰別稱'
keyPassword '金鑰密碼'
storeFile file('E:/MySign.jks')
storePassword '金鑰庫密碼'
}
}
buildTypes {
release {
// 正式環境簽名
signingConfig signingConfigs.release
}
debug {
// 開發環境簽名
signingConfig signingConfigs.debug
}
}
}
這裡重點說一下 debug 簽名,如果沒有指定簽名則預設使用系統自動生成的 debug 簽名,每臺電腦生成的簽名檔案不會相同,因為我測試過用其他同事的手機覆蓋安裝應用,卻提示要先解除安裝後才能安裝
獲取簽名的 MD5、SHA1、SHA256 值
開啟 cmd 命令列,輸入以下指令:
keytool -list -v -keystore 簽名檔案地址
輸入密碼,在命令列視窗是看不到輸入的密碼,所以只管輸入之後回車即可
Android Debug的簽名檔案在以下的路徑,金鑰庫密碼為:android
C:\Users\電腦當前使用者名稱\.android\debug.keystore
驗證apk簽名
在 cmd 命令列中輸入
jarsigner -verify -verbose -certs apk檔案地址
正確的簽名,證書到期日期為約定有效期後的日期
X.509, CN=HJQ, L=guangdong, ST=shantou, C=CN
[證書的有效期為17-3-30 下午4:43至67-3-18 下午4:43]
[CertPath 未驗證: Path does not chain with any of the trust anchors]
s = 已驗證簽名
m = 在清單中列出條目
k = 在金鑰庫中至少找到了一個證書
i = 在身份作用域內至少找到了一個證書
jar 已驗證。
警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。如果沒有時間戳, 則在簽名者證書的到期日期 (2067-03-1
8) 或以後的任何撤銷日期之後, 使用者可能無法驗證此 jar。
debug簽名資訊,有效期大約為30年
X.509, C=US, O=Android, CN=Android Debug
[證書的有效期為16-11-22 下午6:15至46-11-15 下午6:15]
[CertPath 未驗證: Path does not chain with any of the trust anchors]
s = 已驗證簽名
m = 在清單中列出條目
k = 在金鑰庫中至少找到了一個證書
i = 在身份作用域內至少找到了一個證書
jar 已驗證。
警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。如果沒有時間戳, 則在簽名者證書的到期日期 (2046-11-1
5) 或以後的任何撤銷日期之後, 使用者可能無法驗證此 jar。
簽名不完整,未簽名或簽名錯誤
s = 已驗證簽名
m = 在清單中列出條目
k = 在金鑰庫中至少找到了一個證書
i = 在身份作用域內至少找到了一個證書
jar 未簽名。(缺少簽名或無法解析簽名)
手動簽名
可以用 360 提供的簽名工具進行簽名,可以到 360 官網進行下載或者 QQ群 78797078 中下載
相關文章
- APK簽名報錯APK
- Android空包Apk簽名AndroidAPK
- 簽名打包Android版apkAndroidAPK
- Android之重新簽名APKAndroidAPK
- Android加固之後Apk重簽名AndroidAPK
- App簽名二三事APP
- Android加固和簽名的那些坑(防掉坑技巧)Android
- 聊聊spring bean名稱命名的那些事兒SpringBean
- React Native 打包apk的那些坑React NativeAPK
- 群簽名與環簽名的介紹
- Android APK命令列實現V1、V2簽名及驗證AndroidAPK命令列
- iOS簽名、iOS企業簽名、iOS超級簽名工具使用iOS
- 電子簽名與手寫簽名的區別,電子簽名的優勢是什麼?
- Java 混淆那些事(六):Android 混淆的那些瑣事JavaAndroid
- WAF的那些事
- DOM的那些事
- Volatile的那些事
- Synchronized的那些事synchronized
- a>b的那些事
- 蘋果企業簽名多少錢-ios企業簽名-企業簽名蘋果iOS
- 程式碼簽名、驅動簽名的常見問題解答
- 蘋果企業簽名—ios簽名的演算法形式蘋果iOS演算法
- 簽名修改
- 環簽名
- Pressone 簽名
- iOS逆向——應用簽名及重簽名原理iOS
- iOS證書籤名機制&重簽名&防止重簽名iOS
- 蘋果簽名是怎樣給手機app簽名的呢?蘋果APP
- webpack的那些事兒Web
- 微服務的那些事微服務
- iOS CollectionView 的那些事iOSView
- https的那些事兒HTTP
- getComputedStyle方法的那些事
- RSA簽名的PSS模式模式
- "簡單"的加密簽名加密
- 蘋果簽名該怎麼去選擇呢?iOS企業簽名-企業簽名蘋果iOS
- Android v1 簽名 和 v2+ 簽名Android
- 超級簽名是什麼?超級簽名跟企業簽名有什麼區別?