生成keystore簽名查看簽名信息的方法簡介
Android獨有的安全機制,除了權(quán)限機制外,另外一個就是簽名機制了。簽名機制主要用在以下兩個主要場合起到其作用:升級App和權(quán)限檢查。
升級App
用戶在升級一款已經(jīng)安裝過的App時,如果程序的修改來自于同一來源,則允許升級安裝,否則會提示簽名不一致無法安裝的'提示。
權(quán)限檢查
我曾在Android Permission權(quán)限機制的具體使用一文中提過,對于申請權(quán)限的 protection level 為 signature 或者 signatureOrSystem 的,會檢查權(quán)限申請者和權(quán)限聲明者的證書是否是一致的。
至于簽名機制的原理及其他作用,此不詳述,本文主要介紹,簽名文件key的生成、用key去簽名apk文件及查看簽名的方法。
生成keystore
創(chuàng)建keystore,需要用到keytool.exe (位于jdk_xxjrebin目錄下),具體做法如下:
復(fù)制代碼 代碼如下:
keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore
#說明:
# -genkey 產(chǎn)生密鑰
# -alias mykey 別名 mykey
# -keyalg RSA 使用RSA算法對簽名加密
# -validity 40000 有效期限4000天
# -keystore demo.keystore
對apk進行簽名
使用產(chǎn)生的keystore對apk簽名,使用到的是jarsigner.exe ,該工具位于jdk_xxbin目錄下,命令如下:
復(fù)制代碼 代碼如下:
jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey
# test_signed.apk是簽名之后的文件
# test.apk是需要簽名的文件
另外需要注意的是,如果你的jdk版本在1.7以上,你在對apk簽名時,需要加上這個參數(shù):
復(fù)制代碼 代碼如下:
-digestalg SHA1 -sigalg MD5withRSA
否則同樣會出現(xiàn):Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的錯誤。
查看簽名信息
1、查看keystore的信息
復(fù)制代碼 代碼如下:
keytool -list -keystore demo.keystore -alias mykey -v
2、查看keystore的公鑰證書信息
復(fù)制代碼 代碼如下:
keytool -list -keystore demo.keystore -alias mykey -rfc
。ㄗⅲ韩@取Base64格式的公鑰證書,RFC 1421)
3、查看apk的簽名信息
復(fù)制代碼 代碼如下:
jarsigner -verify -verbose -certs
【生成keystore簽名查看簽名信息的方法簡介】相關(guān)文章:
徐志摩的傷感簽名11-06
張愛玲經(jīng)典簽名12-25
徐志摩傷感簽名11-05
最好聽的個性簽名11-10
張愛玲的經(jīng)典愛情簽名12-25
經(jīng)典傷心的簽名49條11-05
經(jīng)典傷心的簽名58句11-05
經(jīng)典失戀的簽名45句11-03
經(jīng)典幸福的簽名68句11-02
經(jīng)典悲傷的簽名39句11-01