我完全不明白这个过程。我已经能够导航到Java SDK中包含keytool的文件夹。虽然我一直得到错误openssl不识别为内部或外部命令。问题是,即使我能让它工作,我该做什么,然后做什么?


当前回答

Windows:

打开命令提示符并粘贴下面的命令

键盘出口,又名仙女座键盘 HOMEPATH % \调试机器人。keystore | openssl sha1 -binary | openssl base64

输入密码:android——>按Enter键 用你的开发者账号登录Facebook 去你的Facebook应用程序>设置>粘贴哈希键在“键哈希”选项>保存更改。 现在用Facebook登录/分享等测试你的android应用。

其他回答

为了在你的本地计算机上生成你的密钥散列,运行Java的keytool实用程序(它应该在你的控制台路径上)针对Android调试密钥存储库。默认情况下,在你的home .android目录下)。在OS X上运行:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows操作系统使用:-

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

希望这对你有所帮助

参考开发者facebook网站

下载open ssl:

然后将openssl\bin添加到路径系统变量中:

我的电脑->属性->高级配置->高级->系统变量->系统变量下查找路径,并将此添加到其结尾: ; yourFullOpenSSLDir \ bin

现在在你的jdk\bin文件夹C:\Program Files\Java\ jdk1.8.0_40\bin上打开一个命令行(在windows上按住shift并右键单击->打开命令行此处),并使用:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

并复制它在给出密码后生成的长度为28的数字。

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                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) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

保存更改并重新运行示例。检查你的logcat输出是否有类似这样的消息:

D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

将密钥哈希保存在开发人员配置文件中。重新运行示例并验证可以成功登录。

步骤1->在您的系统中打开CMD

步骤2->C:\程序文件\Java\jdk1.6.0_43\bin>

步骤3->keytool -list -v -keystore C:\Users\leon\.android\debug. exeKeystore -alias androiddebugkey -storepass android -keypass android

你得到SHA1值点击这个链接你转换你的SHA1值为哈希键

我100%肯定这个链接会帮助你

我遇到了完全相同的问题,我没有被要求提供密码,而且似乎我的密钥库文件路径错误。

事实上,如果keytool没有找到您设置的密钥存储库,它将创建一个密钥存储库,并提供错误的密钥,因为它没有使用正确的密钥。

一般的规则是,如果你没有被要求输入密码,那么你生成了错误的密钥。