Java Facebook Android SDK 的密钥哈希

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4347924/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-14 16:19:38  来源:igfitidea点击:

Key hash for Facebook Android SDK

javaandroidkeystorekeytool

提问by Anders

I can't figure out how to get the Key Hash required to use the Facebook Android SDK. I figured out that I can use keytoolwith these commands:

我不知道如何获取使用 Facebook Android SDK 所需的密钥哈希。我发现我可以使用keytool这些命令:

  keytool -exportcert -alias [alias]
 -keystore [keystore] | openssl sha1 -binary | openssl enc -a -e

The only problem is that I have no idea where to insert this, I tried through command windows (win7) and I tried opening the file keytool.exe.

唯一的问题是我不知道在哪里插入它,我尝试通过命令窗口(win7)并尝试打开文件 keytool.exe。

采纳答案by Pradyumna Swain

  1. Download and install OpenSSL from http://slproweb.com/products/Win32OpenSSL.htmlbased on windows 32 or 64 bit.(Note: Download and install first visual C++ 208 redisributable from that site also )
  2. Put the bin directory of installed OpenSSL in windows path.
  3. Open the command prompt and go to C:\Users{User_Name}.android
  4. now put this command on cmd "keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64".(refer https://developers.facebook.com/docs/android/getting-started#samples)
  5. Now enter password "facebook" without double quote.
  6. Now a hash key will be generated enter image description here
  7. Finally go to the Facebook Developer site. Make sure you are logged into Facebook and, using the dropdown menu in the top-right, go to your 'Developer Settings':
  8. Once you're in your developer settings, select 'Sample App' from the navigation on the left, and add and save your key hash into your profile: enter image description here
  1. 基于 Windows 32 或 64 位,从http://slproweb.com/products/Win32OpenSSL.html下载并安装 OpenSSL 。(注意:也可以从该站点下载并安装第一个 Visual C++ 208 可再发行版)
  2. 将安装的 OpenSSL 的 bin 目录放在 windows 路径中。
  3. 打开命令提示符并转到 C:\Users{User_Name}.android
  4. 现在将此命令放在 cmd 上“ keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64”。(请参阅https://developers.facebook.com/docs/android/getting-started#samples
  5. 现在输入没有双引号的密码“facebook”。
  6. 现在将生成一个哈希键 在此处输入图片说明
  7. 最后转到 Facebook 开发者网站。确保您已登录 Facebook,然后使用右上角的下拉菜单转到“开发人员设置”:
  8. 进入开发者设置后,从左侧导航中选择“示例应用”,然后将密钥哈希添加并保存到您的个人资料中: 在此处输入图片说明

回答by Falmarri

You have to open a command prompt window. Go to start->run and type 'cmd' and hit enter. Then you have to navigate to the folder where keytoolis (unless it's in your path), and then type that command.

您必须打开命令提示符窗口。转到开始->运行并输入“cmd”并按回车键。然后您必须导航到keytoolis所在的文件夹(除非它在您的路径中),然后键入该命令。

That is, assuming that command is for windows and not linux.

也就是说,假设该命令适用于 Windows 而不是 linux。

回答by Falmarri

You can install Open SSL from here, that should make your command work

您可以从此处安装 Open SSL ,这将使您的命令正常工作

回答by O.P.S.S

To make things easier -

为了让事情更容易 -

keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v

this should provide you with the fingerprints needed, without the hassle of installing openssl.

这应该为您提供所需的指纹,而无需安装 openssl。

e.g.

例如

Certificate fingerprints:
         MD5:  1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
         SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
         Signature algorithm name: SHA1withRSA
         Version: 3

回答by petrnohejl

I created a batch script facebookkeydebug.bat, which return desired Facebook key hash. Just edit the script, set correct paths, keystore name and run it.

我创建了一个批处理脚本facebookkeydebug.bat,它返回所需的 Facebook 密钥哈希。只需编辑脚本,设置正确的路径,密钥库名称并运行它。

:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat

@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.android\debug.keystore -storepass android -keypass android > debug.keystore.bin

@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause

EDIT: I published a repo with some batch scripts for signing and getting cert keys on Windows: https://github.com/petrnohejl/Android-Scripts

编辑:我发布了一个带有一些批处理脚本的 repo,用于在 Windows 上签名和获取证书密钥:https: //github.com/petrnohejl/Android-Scripts

回答by Rudi

you can use code below to get the Hash key :

您可以使用下面的代码来获取哈希键:

try {

   PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);

   for (Signature signature : info.signatures) 
   {
    MessageDigest md = MessageDigest.getInstance("SHA");
    md.update(signature.toByteArray());
    Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
   }

  } catch (NameNotFoundException e) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

Reference :

参考 :

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

回答by Jorgesys

This is an example of how to get the Key Hash from the Keystore:

这是如何从 Keystore 获取 Key Hash 的示例:

first we need to get the paths of:

首先我们需要获取以下路径:

Java path:C:\Program Files\Java\jdk1.6.0_35\jre\bin

Java路径:C:\Program Files\Java\jdk1.6.0_35\jre\bin

Open SSL Path:C:\OpenSSL-Win32\bin

打开 SSL 路径:C:\OpenSSL-Win32\bin

(install from: http://www.openssl.org/)

(安装来自:http: //www.openssl.org/

Keystore Path:C:\Data\ANDROID\KEYSTORE\

密钥库路径:C:\Data\ANDROID\KEYSTORE\

2) then go to Command line and type:

2)然后转到命令行并键入:

cd [Java path]

cd [Java 路径]

3) then type :

3)然后输入:

keytool.exe -exportcert -alias [alias name] -keystore [Keystore Path]\debug.keystore | [Open SSL Path]\openssl sha1 -binary | [Open SSL Path]\bin\openssl base64

keytool.exe -exportcert -alias [别名] -keystore [密钥库路径]\debug.keystore | [打开 SSL 路径]\openssl sha1 -binary | [打开SSL路径]\bin\openssl base64

4) the password of your Keystore must be required and then you have the Hash Keyrelated to your Android Keystore.

4) 必须提供您的 Keystore 的密码,然后您才能拥有Hash Key与您的 Android Keystore 相关的密码。

enter image description here

在此处输入图片说明

This is the doc of how to set the Key Hashfor Facebook:

这是如何设置Key Hashfor的文档Facebook

https://developers.facebook.com/docs/android/getting-started#release-key-hash

https://developers.facebook.com/docs/android/getting-started#release-key-hash

回答by Pankaj kumar

Best way is to generate Key-Hash using code:

最好的方法是使用代码生成 Key-Hash:

 public static void generateKeyHash(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.user2.testapp",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

call this method once and generate key-hash, enjoy

调用此方法一次并生成密钥哈希,享受

回答by Aqib Butt

C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe -exportcert -alias "typeYouraliasname" -keystore locationof your keystore | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64

C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe -exportcert -alias "typeYouraliasname" -keystore locationof your keystore | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64