有没有办法从签名的 APK 中获取密钥哈希?
有没有办法从签名的 APK 中获取密钥哈希?我们有一个签名的 Android apk 文件,我们想找出这个 APK 的密钥哈希,用于 Facebook SDK.我们可以通过 jarsigner 之类的工具做到这一点吗?
有什么建议吗?
Is there any way to get key hash from signed APK?
We have a signed Android apk file, and we want to find out key hash of this APK, for Facebook SDK.
Can we do that by something like jarsigner?
Any suggestions?
对于从 openssl 获取密钥的 windows 用户,有时可能会很棘手..我总是用它来找到正确的签名.. 只需将此代码粘贴到您的 onCreate() 中并运行.
For windows users getting the key from openssl, may be tricky some times.. I always use this to find the right signature.. Just paste this code in your onCreate() and run.
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
更新:
使用安卓工作室(2.1.2):
Using Android studio(2.1.2):
- 在工作室中打开您的项目,然后点击 gradle 图标.
- 选择您的应用 -> 任务 -> android -> SigningReport
这将运行一个 gradle 任务,该任务将使用 md5 和 sha1 密钥打印调试和发布证书
This will run a gradle task that will print the debug and release certificate with md5 and sha1 keys