查看Apk文件的签名的MD5值

经常需要获得签名文件的MD5值,其实命令行工具如下:

keytool -list -printcert -jarfile app.apk

输出结果是:

Signer #1:

Signature:

Owner: CN=Baidu, OU=Baidu Inc., O=Baidu Inc., L=Shanghai, ST=Shanghai, C=CN Issuer: CN=Baidu, OU=Baidu Inc., O=Baidu Inc., L=Shanghai, ST=Shanghai, C=CN
Serial number: 4b9dd8e7
Valid from: Mon Mar 15 14:51:19 CST 2010 until: Tue Dec 16 14:51:19 CST 2064
Certificate fingerprints:
MD5: C2:B0:B4:97:D0:38:9E:6D:E1:50:5E:7F:D8:F4:D5:39 SHA1: EA:26:37:25:15:DC:A3:0A:14:2E:3F:4D:36:DB:19:33:7A:BC:74:54 SHA256: A6:EF:81:7B:FD:6C:08:34:42:A1:49:85:6E:51:03:6F:69:12:C2:DB:6B:60:09:DB:81:27:CD:D6:41:E2:95:A9 Signature algorithm name: SHA1withRSA Version: 3

其中MD5: C2:B0:B4:97:D0:38:9E:6D:E1:50:5E:7F:D8:F4:D5:39就是我们需要的。

ps:去掉其中的冒号,然后都转为小写,命令如下:

echo $md5value | sed 's/://g' | tr '[:upper:]' '[:lower:]'

输出结果如下:

c2b0b497d0389e6de1505e7fd8f4d539

如果你在使用上面的命令出现如下错误:

$ keytool -list -printcert -jarfile app.apk
Illegal option:  -jarfile  
Try keytool -help  

检查一下你的java版本。-jarfile选项是从java 7中引入的。如果你安装了多个 Java 版本,也可以通过如下命令配置版本:

sudo update-alternatives --config keytool