Android can';不能生成密钥散列

Android can';不能生成密钥散列,android,facebook,Android,Facebook,我已尝试实现以下内容,以便回答: 13) 再次复制以下代码并粘贴 opensslbase64-in debug_sha.txt>debug_base64.txt 当我尝试第13点(上面)时,我得到错误: openssl.exe has stopped working. Illegal option: Alami.android\debug.keystore keytool -list [OPTION]... 我还尝试使用: keytool -exportcert -alias android

我已尝试实现以下内容,以便回答:

13) 再次复制以下代码并粘贴

opensslbase64-in debug_sha.txt>debug_base64.txt

当我尝试第13点(上面)时,我得到错误:

openssl.exe has stopped working.
Illegal option: Alami.android\debug.keystore keytool -list [OPTION]...
我还尝试使用:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
但我得到了一个错误:

openssl.exe has stopped working.
Illegal option: Alami.android\debug.keystore keytool -list [OPTION]...

您可以通过编程直接创建它。

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.package.mypackage", 
                    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) {

        }
只需在onCreate方法中添加此代码。

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.package.mypackage", 
                    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) {

        }

您将在日志中获得keyhash。您可以通过编程直接创建它。

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.package.mypackage", 
                    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) {

        }
只需在onCreate方法中添加此代码。

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.package.mypackage", 
                    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) {

        }

您将在日志中获得密钥哈希。尝试从下载openssl,然后执行

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.package.mypackage", 
                    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) {

        }
keytool -exportcert -keystore YOUR_PATH_HERE/.android/debug.keystore | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe sha1 -binary | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe base64

尝试从下载openssl,然后执行

keytool -exportcert -keystore YOUR_PATH_HERE/.android/debug.keystore | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe sha1 -binary | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe base64

你在系统中下载了openSSL吗?是的,我在系统中下载了openSSL吗?你在系统中下载了openSSL吗?是的,我在系统中下载了openSSL,我不理解这个方法--@ArifAlami你有没有尝试过用这个方法生成keyhash?@ArifAlami只要尝试一下我建议的代码,它会给你keyhash来添加到你的系统中facebook项目。当应用程序运行时,我在登录FB时遇到问题。上面写着“无效的作用域:publish_steam。此消息仅显示给开发者。如果存在这些权限,应用程序的用户将忽略这些权限。请阅读/developers.facebook.com/docs/facebook login/permissions上的文档以获取有效权限”我不明白这个方法-u-@ArifAlami你有没有尝试过用这个方法生成keyhash?@ArifAlami试试这个代码,因为我建议它会给你keyhash来添加到你的facebook项目中。当应用程序运行时,我在登录FB时遇到了问题。上面写着“无效的作用域:publish_steam。此消息仅显示给开发者。如果存在这些权限,应用程序的用户将忽略这些权限。请阅读/developers.facebook.com/docs/facebook login/permissions上的文档以获取有效权限”