Android Facebookキーハッシュを作成する方法


182

私はこのプロセスをまったく理解していません。Java SDKのkeytoolを含むフォルダーに移動できました。opensslが内部または外部コマンドとして認識されないというエラーが発生し続けます。問題は、これを機能させることができたとしても、私は何をし、その後はどうするのでしょうか。


あなたは、最新のFacebookのSDKを使用している場合は完全に、あなたのFacebookのAPIをパット場合は、あなたのlogcatにハッシュキーが印刷され、その後ログインfacebookでログインをクリックしてログインしたときに...
Mehul Ranpara

ローカルコンピューターでキーハッシュを生成するには、Androidデバッグキーストアに対してJavaのkeytoolユーティリティ(コンソールのパスにある必要があります)を実行します。これはデフォルトで、ホーム.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
Rakesh

なぜ誰もがデバッグキーを作成したいのですか?
AndersLindén2014

キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva

回答:


242

これがあなたがする必要があることです-

コードからopenSSlをダウンロードしてください 。C:/にフォルダー-OpenSSLを作成し、抽出したコードをここにコピーします。

debug.keystoreファイルのパスを検出します。uが見つからなかった場合は、C:/で検索し、次のステップのコマンドでパスを使用します。

keytool.exeパスを検出し、コマンドプロンプトでそのdir /に移動して、このコマンドを1行で実行します。

$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

それはパスワードを要求します、それはアンドロイドを置くすべてです。あなたはキーハッシュを取得します


パスワードの入力を求められたら、何でも入れますか?
Somk 2011

5
@Max、デフォルトのパスワードはandroidです。
jamapag 2011

2
キーハッシュが、保存されているキーハッシュandroidと一致せず、機能しない
Boldijar Paul

1
まず、スタジオから[ビルド]-> [ビルドAPK]に移動して、キーストアを作成します。名前やパスワードなどを入力します。簡単にアクセスできるフォルダに.jksファイルとして保存します。次に、パスをコピーし、上記の回答のパスを置き換えてキーを生成します。
buggydroid

1
エラーが表示されます: "...式はパイプラインの最初の要素としてのみ許可されます。行:1 char:184 ...式またはステートメント内の予期しないトークン 'sha1'。...式は次のようにのみ許可されますパイプラインの最初の要素。...式またはステートメントの予期しないトークン 'base64' + CategoryInfo:ParserError:(:) []、ParentContainsErrorRecordException + FullyQualifiedErrorId:ExpressionsMustBeFirstInPipeline "
Android開発者

175

LinuxおよびMacの場合

ターミナルを開く:

デバッグビルド用

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

あなたは見つけるでしょうdebug.keystoreを「.android」フォルダに。それをコピーしてデスクトップに貼り付け、上記のコマンドを実行します。

リリースビルド用

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

注:どちらの場合もパスワードを要求することを確認してください。パスワードを要求しない場合は、コマンドに問題があることを意味します。debug.keystoreのパスワードはandroid」であり、リリースでは、キーストアの作成時に設定したパスワードを入力する必要があります


3
明確にするために、パスワードは空です。プロンプトが表示されたら、単に<Enter>を押します。
トムレッドマン

キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva

1
このメモ:「注:どちらの場合もパスワードを要求することを確認してください。パスワードを要求しない場合は、コマンドに問題があることを意味します。」問題を解決するために不可欠でした
Bleno Silva

私の命を救ってくれてありがとう 私のMACパスワードとキーストアパスワードを常に入力していると、それが間違っていることに気付きました
Lucky Angelo

1
パスワードを要求しても、すべてが正常であるとは限りません(間違ったパスワード、間違ったキーエイリアス)。keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>最初は一人で実行し、すべてが正常かどうかを確認します。さらに、パイプ接続されると、keytoolは非インタラクティブモードになり、入力時にパスワードをプレーンテキストで表示します。したがって、コマンドを個別に実行する小さなスクリプトを記述する方がよいでしょう。
Pierre

98

これを試してください:

public static void printHashKey(Context pContext) {
        try {
            PackageInfo info = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String hashKey = new String(Base64.encode(md.digest(), 0));
                Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
            }
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "printHashKey()", e);
        } catch (Exception e) {
            Log.e(TAG, "printHashKey()", e);
        }
    }

キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva、2015年

これが先の方法です
Tintinabulator Zea

1
これは、pContext.getPackageInfoを呼び出した場合に機能します。または、関数から削除して、アクティビティのonCreateで呼び出します。
Dpedrinha 2016年

1
これは現在getPackageManager()。getPackageInfo([your-package_name]、PackageManager.GET_SIGNATURES)のようです
までの

@Apurva後で使用する場合に備えて、Android SharedPreferencesに配置できます。
マディ

49

OpenSSL:オペレーティングシステムにプレインストールされていない場合はインストールする必要があります(たとえば、Windowsにはプレインストールされていません)。OSに依存するインストール方法(Windowsの場合はリンクを確認してください)、coder_For_Life22が提供する)。

Windowsを使用している場合は、いじりずに最も簡単な方法は、openssl.exeバイナリをキーツールパスにコピーすることです。そうしたくない場合は、PATH環境変数に追加する必要があります。次に、ドキュメントで提供されているコマンドを実行します。

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

の後の引数は-keystoreデバッグキーストアを指すことに注意してください。この場所は、オペレーティングシステムによっても異なります。次の場所のいずれかにある必要があります。

  • Windows Vistaまたは7 -C:\ Users \ .android \ debug.keystore
  • Windows XP -C:\ Documents and Settings \ .android \ debug.keystore
  • OS XおよびLinux -〜/ .android / debug.keystore

すべてが正しければ、パスワードの入力を求められます。これはandroidデバッグ証明書用です。パスワードが正しい場合、コンソールはハッシュ(ややランダムな文字と数字)を出力します。

それを取得して、android key hashFacebookのアプリの設定内のフィールドにコピーします。アクセスするにdevelopers.facebook.com /appsにアクセスしEdit settings、アプリを選択して、に移動して下にスクロールします。その後、変更が有効になるまで数分待ちます。


私はこれをcmdで実行し、=記号で終わり、何もないハッシュのように見える非常に長い文字のリストを出力しました$ keytool -exportcert -alias androiddebugkey -keystore "C:\ Users \ .android \ debug.keystore" | "C:\ OpenSSL \ bin \ openssl" sha1 -binary | "C:\ OpenSSL \ bin \ openssl" base64
Somk

正解ですね。私のマシンでテストしたところ、28文字でした。今すぐそれをコピーして、あなたは大丈夫です。:)

でも私はファースアンドロイドを使うように促されませんでした。遅くなってすみません。
Somk 2009

正直なところ、なぜそれを求められなかったのかわかりません。しかし、それは私には正しいように思えます。つまり、何か問題があった場合は、代わりにエラーメッセージが表示されます。コピーして、機能するかどうかを確認してください。一部のグラフクエリは、Graph API Explorerでテストできます。上部でアプリを選択し、有効な結果が得られるかどうかを確認してください。何か問題がある場合は、エラーが表示されます。編集:そして、ゆっくりとすることで問題はありません。私たちは急いでいません。:)

24

ローカルコンピューターでキーハッシュを生成するには、Androidデバッグキーストアに対してJavaのkeytoolユーティリティ(コンソールのパスにある必要があります)を実行します。これはデフォルトで、ホーム.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

これがあなたを助けることを願っています

Ref-開発者向けFacebookサイト


キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva

19

詳細はこちら(Windowsの場合)

1.システムに基づいて、32ビットまたは64ビットのOpenSSlを 3番目または4番目にダウンロードします(eの方が効果的です)。

2.ダウンロードしたzipをCディレクトリ内に抽出します

3.抽出されたフォルダーをbinまで開き、パスをコピーします。これは次のようになりますC:\openssl-0.9.8k_X64\bin\openssl (最後に\ opensslを追加します)。

4.(方法がわかっている場合は、Jdkのbinフォルダーへのパスを取得し、これを無視します)。

android studio〜file〜Project Structure(ctrl + alt + shift + s)を開き、左側のパネルでSDKの場所を選択し、JDKの場所をコピーして/ binを追加します

したがって、最終的なJDKの場所は次のようになります C:\Program Files\Android\Android Studio\jre\bin

私のように埋め込まれたjdkを使用する可能性があるため、Jdkの場所を取得するためにこのメソッドに従っています

ここに画像の説明を入力してください

OpenSSlの場所とJDKの場所ができました

5.デバッグキーストアの場所が必要です開いているC〜> Users〜> YourUserName〜> .androidの場合、ファイル名debug.keystoreが必要です。パスの場所をコピーしてください。次のようになります。

C:\Users\Redman\.android\debug.keystore

6.コマンドプロンプトを開き、コマンドを入力します

cd YourJDKLocationFromStep4  

私の場合

 cd "C:\Program Files\Android\Android Studio\jre\bin"

7.次のコマンドを作成します

keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

私の場合、コマンドは次のようになります

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

コマンドプロンプトでこのコマンドを入力します。正しく実行した場合、パスワードを要求されます(パスワードはandroidです)。

Enter keystore password:  android

それ、それはあなたにキーハッシュが与えられ、それをコピーして使用するだけです

Signed KeyHashの場合、次のコマンドを作成します

keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

キーストアのパスワードを入力してください。間違ったパスワードを入力すると、間違ったKeyHashが返されます

注意

何らかの理由で何らかのパスでエラーが発生した場合は、そのパスを二重引用符で囲みます。また、Windows Power Shellがうまく機能しなかった場合は、git bash(またはコマンドプロンプトを使用)を使用しました。

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

1
どうもありがとう、これは初心者のための非常に詳細なガイドです!
PabloQuemé2017

@TamimProductionは、opensslのkバージョンで同じ手順を試し、code.google.com / archive / p / openssl
Manohar Reddy

@TamimProductionは、間違ったパスワードを入力すると、間違ったキーハッシュを返します。また、キーストアを削除した後、apkを再度ビルドしましたか?
Manohar Reddy

@TamimProduction Facebookアプリケーションをダウンロードしてインストールし、Facebookアプリケーションにログインします。アプリを開いてFacebookログインを行います。Facebookアプリケーションでキーハッシュを提供します。それがあなたのものと同じかどうかを確認してください
Manohar Reddy


18

ブラウザコンソールで1行のJavaScriptを使用するだけで、16進数のマップキーをbase64に変換できます。最新のブラウザ(Windows上のF12)でコンソールを開き、コードを貼り付け、置き換えSHA-1SHA-256Google Playには、下の提供するヘクスRelease Managment>をApp signing

> btoa('a7:77:d9:20:c8:01:dd:fa:2c:3b:db:b2:ef:c5:5a:1d:ae:f7:28:6f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "p3fZIMgB3fosO9uy78VaHa73KG8="

1
あなたは命の恩人です、ありがとう
Yusuf Adeyemo

SHA-1がその1つでした。
Travo

16

短い解決策もあります。アプリでこれを実行してください:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));

FB SDKを必要としない長いもの(ここでのソリューションに基づく):

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

結果は "="で終わる必要があります。


1
キーハッシュに '_'が含まれていることに気付きました。これはFBでは許可されていません。ハッシュを使用するには、「/」に変更する必要がありました。
Abdelalim Hassouna 2018年

Facebook関数は-AAAAAAAA_AAAAAA-AAAAAAAAAAFacebookで許可されていないため、キーを返しました。printHashKeyはキーを有効な形式で返しました+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov

@GrafOrlovどのように奇妙な。多分彼らはいくつかの新しいFB SDKバージョンにバグがあります。あなたはそれについて彼らに報告するべきです。
Android開発者

9

Windowsの場合:

  1. コマンドプロンプトを開き、コマンドの下に貼り付けます

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

  1. パスワードを入力:android-> Enterキーを押します

  2. 生成されたハッシュキーをコピー->開発者アカウントでFacebookにログイン

  3. Facebookアプリに移動します->設定->「キーハッシュ」オプションにハッシュキーを貼り付けます->変更を保存します。

  4. Facebookのログイン/共有などでAndroidアプリをテストします。


キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva、2015年

こんにちは、メインアクティビティのコードでハッシュキーを生成できますが、生成されたハッシュキーは単一のデバイスでのみ機能します。同じapkを別のデバイスにインストールして実行すると、無効なハッシュキーエラーが表示されます。足りないものはありますか?
Deepak

8

API 26以降、Facebook SDK を使用せずにKOTLINで次のコードを使用してハッシュキーを生成できます。

fun generateSSHKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}

ここに画像の説明を入力してください


class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
つまり

6

それが私の入手方法です:

private class SessionStatusCallback implements Session.StatusCallback {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if (exception != null) {
                new AlertDialog.Builder(FriendActivity.this)
                        .setTitle(R.string.login_failed_dialog_title)
                        .setMessage(exception.getMessage())
                        .setPositiveButton(R.string.ok_button, null)
                        .show();
            }

したがって、キーなしで入力しようとすると、例外が発生します。Facebookはこの例外にRIGHTキーを入れました。コピーするだけです。


キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva、2015年

6

アプリを既にPlayストアにアップロードしている場合は、次のようにハッシュキーを生成できます。

1)ここからリリース管理に移動

2)[リリース管理]-> [アプリの署名]を選択します

3)16進数形式のアプリ署名証明書でSHA1キーを確認できます。


4)SHA1を16進形式でコピーしてbase64形式に変換します。このリンクを使用すると、SHA1なしで16進数の一部を使用できます。


5)Facebook開発者コンソールに移動し、設定にキーを追加します(base 64に変換後)—>基本–>キーハッシュ。



3

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文字の番号をコピーします。


元の回答にopensslリンクがすでにあることは知りませんでした。しかし、それでもシステム変数には役立ちます。
sagits 2015年

キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva、2015年

もちろん、長さ28の数値を生成しましたか?その場合は、Facebookの開発者(Googleで検索)サイトにアクセスして新しいアプリケーションを作成する必要があります。設定で、新しいAndroidアプリを追加できます。そこにキーハッシュとアクティビティ名(ログインコードがある場所)を貼り付けます)。facebookにもそれに関するチュートリアルがあります
sagits

迅速な返信をありがとう、私はすぐに試してみる
Apurva

3

これをあなたのアプリで実行してください:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

またはこれ:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

そして、ログを見てください。

結果は "="で終わる必要があります。

ソリューションはここここに基づいてます


3

簡単な方法-> opensslをインストールしない-> GIT BASHを使用してください!

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

デフォルトのパスワードは「android」です

私たちのほとんどはGit Bashをインストールしているので、これが私のお気に入りの方法です。


3

これは、初心者にも役立ちます。

@ coder_For_Life22の回答に詳細を追加するだけです。

この回答が役立つ場合は、投票することを忘れないでください。それは私たちをやる気にさせます。

この

ため、この例ではアプリのキーストアファイルとパスワードのパスを知っている必要があります。キーは「c:\ keystorekey \ new.jks」に保存されていると考えて

ください。1.このページを開く https://code.google.com/archive / p / openssl-for-windows / downloads

2. Windows OSに応じて32ビットまたは64ビットのzipファイルをダウンロードします。

3.ダウンロードしたファイルを好きな場所に抽出し、パスを覚えておきます。

4.この例では、ダウンロードフォルダー内のフォルダーを抽出したと見なします。

したがって、ファイルアドレスは「C:\ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe」になります。

5.キーボードでwindows + rボタンを押します。

6.これで実行ボックスが開きます。 e。このフォルダ内に必要なファイル「keytool.exe」として、このパスの最後に「\ bin」を追加します。

7. cmdと入力し、Ctrl + Shift + Enterを押します。

8.これにより、管理者としてコマンドプロンプトが開きます。

9.ここで、javaのbinフォルダーに移動します

。AndroidStudioによって提供されるjreを使用する場合、パスは次のようになります
。Androidスタジオを開きます。
b。ファイル->プロジェクト構造
c。左側のペインで、「SDKの場所」をクリックします
。右側のペインで、「JDKの場所」の下にjreパスがあります。 32ビットJavaをインストールした場合は、

この例では、私は、
"C:\ Program Files \ Java \ jre-10.0.2 \ bin"

「C:\ Program Files(x86)\ Java \ jre-10.0.2 \ bin」
10.上記のパスを使用して、次のようにコマンドを実行します。

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
  1. パスワードの入力を求められます。キーストアキーを作成するときに指定したパスワードを入力してください。

    !!!!!! これはあなたに鍵を与えるでしょう

エラー:次のエラーが発生した場合:
---
'keytool'は内部または外部コマンドとして認識されません
---
これは、Javaが別の場所にインストールされていることを意味します。


3

ステップ1-> C:\ Program Files \ Java \ jdk1.6.0_43 \ bin>

手順2-> keytool -list -v -keystore C:\ Users \ leon \ .android \ debug.keystore -alias androiddebugkey -storepass android -keypass android

u SHA1値を取得このリンクをクリック u uSHA1値をハッシュキーに変換

im 100%このリンクがあなたを助けると確信しています



2

https://console.developers.google.com/projectselector/apis/credentialsからすべての指紋を取得でき
ます。次のKotlinコードを使用して、キーハッシュに変換します。

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}

1

https://developers.facebook.com/docs/android/getting-started/

4.19.0-2017年1月25日

Facebook SDK

修正

アプリケーションの起動時にFacebook SDKが自動初期化されるようになりました。ほとんどの場合、FacebookSDK.sdkInitialize()を手動で呼び出す必要はありません。詳細については、アップグレードガイドを参照してください。

デバッグ用

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 (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

1

OnCreateViewまたはOnStart Actvity でこのコード実行するだけで、この関数は開発キーハッシュを返します。

private String generateKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = (MessageDigest.getInstance("SHA"));
            md.update(signature.toByteArray());
            return new String(Base64.encode(md.digest(), 0));
        }
    }catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return "key hash not found";
}

0

私はまったく同じ問題を抱えていて、パスワードを求められず、キーストアファイルのパスが間違っているようです。

実際、keytoolが設定したキーストアを見つけられない場合は、正しいキーを使用していないため、キーが作成され、間違ったキーが返されます。

一般的なルールとして、パスワードの入力を求められない場合は、間違ったキーが生成されます。


キーハッシュを生成しましたが、そのキーをどこに置くかわかりません。UbuntuでAndroid Studioを実行しています。
Apurva、2015年

0

あなたはこのapkを使うことができます

1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want

@Elynad中国語です:D
armnotstrong


0

keytool -exportcert -alias androiddebugkey -keystore "C:\ Users ** Deepak **。android \ debug.keystore" | " C:\ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | " C:\ Users \ Deepak \ ssl \ bin \ openssl" base64

2この上記のコマンドの変更1.Deepak ===システムのユーザー名に置き換えます2.C:\ Users \ Deepak \ ssl === Open SSLパスを置き換えます

このコマンドを実行して、次のような出力を取得します

C:\ Users \ Deepak> keytool -exportcert -alias androiddebugkey -keystore "C:\ Users \ D eepak.android \ debug.keystore" | "C:\ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | "C:\ Users \ Deepak \ ssl \ bin \ openssl" base64 Enter keystore password:****** ga0RGNY ****************** =


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.