【轉載】https://blog.csdn.net/u014434080/article/details/76177847 感謝分享
場景:測試說更新apk的時候拷貝出錯,根據他們以往的經驗,極有可能是簽名不一緻造成的。這個時候作為開發的我們,第一件事就是驗證他們的猜測是否合理,并給出相對應的證據。
1,把新老版本放到不同的檔案夾下(如下圖:)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TQNRTQE5keRRkT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jNzAzN1gDNxEzNycDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2,cmd定位到APK所在目錄下
3,查找apk裡的rsa檔案
輸入指令:jar tf demo .apk |findstr RSA
注:使用這些指令前一定要安裝了JDK
4,從apk中解壓rsa檔案
輸入指令:jar xf demo .apk META-INF/CERT.RSA
5,擷取簽名的fingerprints
輸入指令:keytool -printcert -file META-INF/CERT.RSA
結果:(如下圖)
6,兩個apk是否同簽名,比較簽名的MD5碼或SHA1碼 ,一樣簽名就是相同的,反之,簽名不同
對比截圖如下: