用途
我們在高德涂身、百度等這些第三方SDK的集成和注冊時,都會讓我們提供包名或者證書指紋(MD5叶骨、SHA-1霎箍、SHA-256)等信息,這些信息如何獲取呢魏保?有多種方法熬尺。
準備工作
安裝好JDK。最好配置好環(huán)境變量(為啥要配置環(huán)境變量我就不解釋了囱淋,反正大佬們都懂猪杭,小白們起碼也知道怎么配,都是基本功了)妥衣,這樣用起來更方便皂吮。
我們主要用的是jdk的bin目錄中的keytool工具戒傻。
動手
情況1:證書在手
這種情況下,我就是開發(fā)者蜂筹,我有keystore或者jks文件需纳。可以使用命令直接查看證書信息艺挪。
keytool -list -v -keystore [keystore或jks文件路徑] -storepass [密鑰庫密碼]
-storepass
也可以不寫不翩,回車后會提示輸入密碼。
關于這個命令用法的詳細介紹麻裳,我們可以看一下命令本身提供的幫助輸出:
keytool -list [OPTION]...
列出密鑰庫中的條目
選項:
-rfc 以 RFC 樣式輸出
-alias <alias> 要處理的條目的別名
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
使用 "keytool -help" 獲取所有可用命令
情況2:手中只有用目標證書打包出來的apk包
有的時候口蝠,是給別人幫忙,或者僅僅是查看一下別人家apk的信息津坑,這時候妙蔗,我們就需要稍微繞點彎路。我們知道疆瑰,apk打包之后眉反,包內會保存有RSA文件,這相當于是證書的公鑰穆役,用來給系統(tǒng)驗證apk包簽名有效性的(非對稱加密的知識如果還不太了解寸五,大家可以去查一下,這里暫時不再贅述)耿币。而一般第三方廠商校驗的梳杏,也就是這個公鑰證書的指紋。
解壓縮apk文件(初級開發(fā)者們不要吃驚掰读,apk包其實就是一個zip)秘狞;
找到RSA文件:apk包/META-INF/xxx.RSA。(這個xxx一般是簽名證書的別名蹈集,不重要)烁试;
使用命令讀取RSA的信息:
keytool -printcert -file [RSA文件路徑]
- 關于此命令的用法介紹:
keytool -printcert [OPTION]...
打印證書內容
選項:
-rfc 以 RFC 樣式輸出
-file <filename> 輸入文件名
-sslserver <server[:port]> SSL 服務器主機和端口
-jarfile <filename> 已簽名的 jar 文件
-v 詳細輸出
使用 "keytool -help" 獲取所有可用命令
結束
拿到了輸出信息之后,想必大家已經知道要用什么了拢肆。有的時候可能還要考慮大小寫减响,還有去除冒號之類的,這個具體要看人家第三方需要什么格式了郭怪,睜大眼睛看好了支示。