Android簽名機(jī)制介紹:生成keystore、簽名、查看簽名信息等方法
Android獨(dú)有的安全機(jī)制,除了權(quán)限機(jī)制外,另外一個(gè)就是簽名機(jī)制了。簽名機(jī)制主要用在以下兩個(gè)主要場(chǎng)合起到其作用:升級(jí)App和權(quán)限檢查。
升級(jí)App
用戶在升級(jí)一款已經(jīng)安裝過(guò)的App時(shí),如果程序的修改來(lái)自于同一來(lái)源,則允許升級(jí)安裝,否則會(huì)提示簽名不一致無(wú)法安裝的提示。
權(quán)限檢查
我曾在Android Permission權(quán)限機(jī)制的具體使用一文中提過(guò),對(duì)于申請(qǐng)權(quán)限的 protection level 為 signature 或者 signatureOrSystem 的,會(huì)檢查權(quán)限申請(qǐng)者和權(quán)限聲明者的證書是否是一致的。
至于簽名機(jī)制的原理及其他作用,此不詳述,本文主要介紹,簽名文件key的生成、用key去簽名apk文件及查看簽名的方法。
生成keystore
創(chuàng)建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目錄下),具體做法如下:
keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore
#說(shuō)明:
# -genkey 產(chǎn)生密鑰
# -alias mykey 別名 mykey
# -keyalg RSA 使用RSA算法對(duì)簽名加密
# -validity 40000 有效期限4000天
# -keystore demo.keystore
對(duì)apk進(jìn)行簽名
使用產(chǎn)生的keystore對(duì)apk簽名,使用到的是jarsigner.exe ,該工具位于jdk_xx\bin目錄下,命令如下:
jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey
# test_signed.apk是簽名之后的文件
# test.apk是需要簽名的文件
另外需要注意的是,如果你的jdk版本在1.7以上,你在對(duì)apk簽名時(shí),需要加上這個(gè)參數(shù):
-digestalg SHA1 -sigalg MD5withRSA
否則同樣會(huì)出現(xiàn):Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的錯(cuò)誤。
查看簽名信息
1、查看keystore的信息
keytool -list -keystore demo.keystore -alias mykey -v
2、查看keystore的公鑰證書信息
keytool -list -keystore demo.keystore -alias mykey -rfc
(注:獲取Base64格式的公鑰證書,RFC 1421)
3、查看apk的簽名信息
jarsigner -verify -verbose -certs <your_apk_path.apk>
- 給Android的APK程序簽名和重新簽名的方法
- android應(yīng)用簽名詳細(xì)步驟
- Android獲取apk程序簽名信息代碼示例
- Android APK使用Debug簽名重新打包 Eclipse更改默認(rèn)Debug簽名
- Android Apk去掉簽名以及重新簽名的方法
- iOS 基于AFNetworking下自簽名證書配置的方法
- iOS中的ipa重簽名(逆向必備)
- iOS之Https自簽名證書認(rèn)證及數(shù)據(jù)請(qǐng)求的封裝原理
- IOS 簽名錯(cuò)誤codesign failed with exit code 1解決方法
- Android和iOS包批量重簽名
相關(guān)文章
Android 圓角 ImageView類可設(shè)置弧度(代碼簡(jiǎn)單)
這篇文章主要介紹了Android 圓角 ImageView類可設(shè)置弧度 的相關(guān)資料,需要的朋友可以參考下2016-03-03Android開發(fā)之OpenGL繪制2D圖形的方法分析
這篇文章主要介紹了Android開發(fā)之OpenGL繪制2D圖形的方法,結(jié)合實(shí)例形式分析了Android使用OpenGL ES的圖形繪制組件實(shí)現(xiàn)2D圖形繪制的原理、步驟及相關(guān)代碼注意事項(xiàng),需要的朋友可以參考下2017-09-09Android使用分類型RecyclerView仿各大商城首頁(yè)
這篇文章主要為大家詳細(xì)介紹了Android使用分類型的RecyclerView仿各大商城首頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android網(wǎng)格布局GridView實(shí)現(xiàn)漂亮的多選效果
這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)格布局GridView實(shí)現(xiàn)漂亮的多選效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12