有没有办法从签名的APK中获取密钥哈希?我们有一个签名的Android APK文件,我们想找出这个APK的密钥哈希,用于Facebook SDK。我们可以通过类似jarsigner的东西来实现吗?有什么建议吗?
f3temu5u1#
在Linux上,我使用以下命令从apk获取密钥哈希:
keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" | xxd -r -p | openssl base64
适用于Mac用户(OS X),因为不支持grep -P第一个月
azpvetkf2#
对于Windows用户从openssl获得密钥,有时可能会很棘手。我总是用这个来找到正确的签名。只需将此代码粘贴到您的onCreate()并运行。
// 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) { }
使用Android工作室(2.1.2):1.在studio上打开您的项目,然后单击gradle图标。1.选择您的应用-〉任务-〉android-〉签名报告这将运行一个gradle任务,该任务将打印包含md5和sha1密钥的调试和发布证书
cwdobuhd3#
这是为时已晚的答案,但它的非常快速的方式来获得签名的应用程序密钥哈希。安装apk,它可以提取所有应用程序的关键哈希。下载地址:https://apkpure.com/key-hash-key/notimeforunch.keyhash
ovfsdjhp4#
当我建立我的Facebook应用程序时,我使用了我的Android密钥库。有一个哈希函数可以用来做这个。通常在Google API中使用。(请看那里的说明)。如果你拥有这个应用程序并签署了它;这应该不是问题,否则。。你基本上搞砸了。没有办法。
nue99wik5#
您也可以使用以下方法从APK签名密钥库文件获取base64中的Sha1哈希(如Facebook所需):-
Mac: keytool -exportcert -alias <KEY_STORE_ALIAS> -keystore <KEY_STORE_PATH> | openssl sha1 -binary | openssl base64 Windows: keytool -exportcert -alias <KEY_STORE_ALIAS> -keystore <KEY_STORE_PATH> | openssl sha1 -binary | openssl base64
对于这个命令,您还需要openssl。例如:
keytool.exe -list -v -keystore "%LocalAppData%\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android | openssl sha1 -binary | openssl base64
其中,"%LocalAppData%\Xamarin\Mono for Android\debug.keystore"应该替换为用于签署apk的密钥库文件的路径(在调试或adhoc分发时)。
"%LocalAppData%\Xamarin\Mono for Android\debug.keystore"
a5g8bdjr6#
keytool -printcert -jarfile 123.apk
或
keytool -printcert -file CERT.RSA
6条答案
按热度按时间f3temu5u1#
在Linux上,我使用以下命令从apk获取密钥哈希:
适用于Mac用户(OS X),因为不支持grep -P
第一个月
azpvetkf2#
对于Windows用户从openssl获得密钥,有时可能会很棘手。我总是用这个来找到正确的签名。只需将此代码粘贴到您的onCreate()并运行。
使用Android工作室(2.1.2):
1.在studio上打开您的项目,然后单击gradle图标。
1.选择您的应用-〉任务-〉android-〉签名报告
这将运行一个gradle任务,该任务将打印包含md5和sha1密钥的调试和发布证书
cwdobuhd3#
这是为时已晚的答案,但它的非常快速的方式来获得签名的应用程序密钥哈希。
安装apk,它可以提取所有应用程序的关键哈希。
下载地址:https://apkpure.com/key-hash-key/notimeforunch.keyhash
ovfsdjhp4#
当我建立我的Facebook应用程序时,我使用了我的Android密钥库。有一个哈希函数可以用来做这个。通常在Google API中使用。(请看那里的说明)。如果你拥有这个应用程序并签署了它;这应该不是问题,否则。。你基本上搞砸了。没有办法。
nue99wik5#
您也可以使用以下方法从APK签名密钥库文件获取base64中的Sha1哈希(如Facebook所需):-
对于这个命令,您还需要openssl。
例如:
其中,
"%LocalAppData%\Xamarin\Mono for Android\debug.keystore"
应该替换为用于签署apk的密钥库文件的路径(在调试或adhoc分发时)。a5g8bdjr6#
或