Facebook Android Key Hash generieren

119

Beim Versuch, eine Android-App mit Facebook-Integration zu erstellen, bin ich zu dem Teil in den Dokumenten gekommen, in dem Sie eine Schlüssel-Hash-Datei generieren müssen. Diese gibt an, dass der folgende Code ausgeführt werden soll

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

Wenn ich dies in meinem Terminal ausführe, wird eine Fehlermeldung für den manipulierten Keystore angezeigt oder das Passwort war falsch.

Ich möchte nur meinen Key Hash generieren

Kann mich jemand in die richtige Richtung weisen?

Scott
quelle
2
Verwenden Sie das richtige Passwort?
Präsident James K. Polk
Wenn Sie den Befehl in das Terminal eingeben, habe ich nicht die Möglichkeit, ein Passwort einzugeben
Scott
Geben Sie nur den Befehl keytool ohne die letzten beiden Pipes ein.
Präsident James K. Polk
6
Ich habe es verstanden, ich bin manchmal so ein Idiot, gebe den Befehl in einer ganzen Zeile ein, kopiere nicht und füge ihn nicht ein
Scott

Antworten:

20

Löschen Sie Ihr Debug-Zertifikat unter ~ / .android / debug.keystore (unter Linux und Mac OS X). Das Verzeichnis ist so etwas wie% USERHOME% /. android unter Windows.

Das Eclipse-Plugin sollte dann ein neues Zertifikat generieren, wenn Sie das nächste Mal versuchen, ein Debug-Paket zu erstellen.

Lassen Sie mich wissen, ob das funktioniert.

allthenutsandbolts
quelle
hat nicht funktioniert. löschte die debug.keystore-Datei, machte Debug-Build, Datei kam nie zurück. Hinweis sonst in diesem Ordner aktualisiert.
CthulhuJon
3
Ich weiß wirklich nicht, wie das die akzeptierte Antwort ist?
Enoobong
Generieren Sie damit HashKey für den Debug- und Release-Modus. stackoverflow.com/questions/7506392/...
Naeem Ibrahim
281

Um Schlüssel-Hash zu generieren, müssen Sie einige einfache Schritte ausführen.

1) Laden Sie Openssl von hier herunter .

2) Erstellen Sie einen openssl- Ordner im Laufwerk C.

3) Extrahieren Sie Zip-Dateien in diesen in C Drive erstellten openssl- Ordner .

4) Kopieren Sie die Datei debug.keystore aus dem Ordner .android in meinem Fall (C: \ Users \ SYSTEM.android) und fügen Sie sie in den Fall JDK bin ein (C: \ Programme \ Java \ jdk1.6.0_05 \ bin).

5) Öffnen Sie die Eingabeaufforderung und geben Sie in meinem Fall den Pfad des JDK-Bin-Ordners an (C: \ Programme \ Java \ jdk1.6.0_05 \ bin).

6) Kopieren Sie den folgenden Code und drücken Sie die Eingabetaste

keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c: \ openssl \ bin \ debug.txt

7) Jetzt müssen Sie Passwort eingeben , Passwort = Android.

8) Wenn Sie im Ordner openssl Bin sehen, erhalten Sie eine Datei mit dem Namen debug.txt

9) Jetzt können Sie entweder die Eingabeaufforderung neu starten oder mit der vorhandenen Eingabeaufforderung arbeiten

10) Kehren Sie zum Laufwerk C zurück und geben Sie den Pfad des Ordners openssl Bin an

11) Kopieren Sie den folgenden Code und fügen Sie ihn ein

openssl sha1 -binary debug.txt> debug_sha.txt

12) Sie erhalten debug_sha.txt im Ordner openssl bin

13) Kopieren Sie erneut den folgenden Code und fügen Sie ihn ein

openssl base64 -in debug_sha.txt> debug_base64.txt

14) Sie erhalten debug_base64.txt im Ordner openssl bin

15) Öffnen Sie die Datei debug_base64.txt. Hier ist Ihr Schlüssel-Hash.

Vijay Arora
quelle
4
nette Antwort +1 für Sie Ich bin diesem gefolgt und erhalte das gewünschte Ergebnis :)
BBdev
Ich erhalte Folgendes: keytool error: java.io.IOException: Der Keystore wurde manipuliert oder das Passwort war falsch. Wie kann ich mein korrektes Passwort finden?
DuyguK
Dies funktionierte für mich nach 2 Tagen der Verwirrung darüber, was los war. Geniale Arbeit!
RennoDeniro
4
@Vizzz: Schöne Art zu erklären, um Schlüssel-Hash zu generieren. Vielen Dank für diesen Beitrag, ich hoffe, dieser Beitrag spart jemandem viel Zeit.
Emran Hamza
1
Ich habe jeden Code ausprobiert, aber nie die gewünschte Ausgabe erhalten. Ich habe versucht, Code von Facebook, es ist auch das gleiche, nur alle drei Befehle in einem Befehl, aber das Ausführen von drei Befehlen getrennt gab den richtigen Code und funktionierte, Stunde der Suche oder vielleicht Tage der Suche. Vielen Dank. Vorher gab nur der Code in der Android App das richtige Ergebnis, die Eingabeaufforderung gab ungültige Schlüssel aus, jetzt ist alles in Ordnung.
Nochmals vielen
149

AKTUALISIERTE ANTWORT (Generieren durch Code) Einfachere Methode:

Nach meiner Erfahrung, da openssl immer problematisch ist, habe ich die zweite von Facebook vorgeschlagene Methode ausprobiert. Und es ist wunderbar. Dies ist die beste Methode, um den Hash-Schlüssel zu erhalten.

Die zweite Möglichkeit besteht darin, den an Facebook gesendeten Schlüssel-Hash auszudrucken und diesen Wert zu verwenden. Nehmen Sie in Ihrer Hauptaktivität die folgenden Änderungen an der onCreate () -Methode vor:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

        }
        ...other operations

}//end of onCreate

Ersetzen Sie com.facebook.samples.loginhowto durch Ihren eigenen Paketnamen (Paketname in Manifest.xml).

Offizieller Link - https://developers.facebook.com/docs/android/login-with-facebook/ (Siehe unten auf der Seite)

ALTE ANTWORT (Keyhash mit openssl generieren)

  1. Um eine Signatur zu generieren, muss openssl auf Ihrem PC installiert sein. Wenn Sie keinen Download haben, öffnen Sie hier
  2. In C: opensslOrdner erstellen
  3. Extrahieren Sie den Inhalt der heruntergeladenen openssl-Zip-Datei in den opensslOrdner im C:Laufwerk
  4. Öffnen Sie die Eingabeaufforderung
  5. Bewegen Sie sich zu binvon openssl dh C:\openssl\binin der Eingabeaufforderung
  6. Führen Sie den folgenden Befehl aus, um Ihren Keyhash zu generieren. Beim Generieren des Hashkeys sollten Sie nach dem Passwort gefragt werden.

    keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Anhsirk.android \ debug.keystore" | openssl sha1 -binary | openssl base64

HINWEIS : Beachten Sie im obigen Code, dass Sie dem Benutzer Ihren Pfad geben müssen (in meinem Fall ist es C: \ Users \ Anhsirk, Sie müssen dies nur für Ihr Benutzerkonto ändern.

Passwort als Android geben

. Wenn Sie nicht nach einem Kennwort gefragt werden, ist Ihr Schlüsselspeicherpfad falsch.

Wenn alles gut funktioniert, sollte es Ihnen den folgenden Hashkey geben.

Geben Sie hier die Bildbeschreibung ein

AnhSirk Dasarp
quelle
Ich erhalte Folgendes: keytool error: java.io.IOException: Der Keystore wurde manipuliert oder das Passwort war falsch. Wie kann ich mein korrektes Passwort finden?
DuyguK
@DuyguK - bedeutet wahrscheinlich, dass Ihr Schlüsselspeicher bereits vorhanden ist. Versuchen Sie das zu löschen und wiederholen Sie. Oder ein falscher Pfad, den Sie möglicherweise angegeben haben
AnhSirk Dasarp
Gott, das hat mich Stunden gekostet. Ich danke dir sehr!
Yenthe
Ich möchte fragen, ob die neue Methode (Keyhashes per Code abrufen) den onCreate-Prozess irgendwie verlangsamt. Denn soweit ich weiß, unterscheiden sich die Keyhashes beim Erstellen der signierten APK. Trotzdem danke für den Code! :)
Marson
Funktioniert die einfachere Methode ohne Emulator, aber auf dem echten Android-Gerät?
24

Einfachste Möglichkeit, einen Hash-Schlüssel zu generieren.

Voraussetzung: SHA1-Schlüssel

Sie können den SHA1-Schlüssel auf zwei Arten aus Ihrer Keystore-Datei abrufen

1) Suchen Sie Ihre Keystore-Datei, öffnen Sie die Eingabeaufforderung an dieser Stelle und verwenden Sie den unten genannten Befehl

keytool -list -v -keystore {keystore_name} -alias {alias_name}

und geben Sie dann Ihr Passwort ein, dann werden die Schlüssel md5, sha1 und sha256 zurückgegeben.

ODER

2) Durch Ausführen von signingReport

Siehe Bild unten.

Geben Sie hier die Bildbeschreibung ein

Nachdem Sie die Datei ausgeführt haben, wird Ihre Ausgabe mit dem erforderlichen sha1-Schlüssel generiert.

Geben Sie hier die Bildbeschreibung ein

Nachdem Sie den erforderlichen SHA1-Schlüssel erhalten haben

Dann geh zu

http://tomeko.net/online_tools/hex_to_base64.php

und fügen Sie Ihren sha1-Schlüssel ein

Geben Sie hier die Bildbeschreibung ein

und schließlich erhalten Sie Required HashKey, mit dem Sie sich auf Facebook bewerben können.

Vicky Salunkhe
quelle
2
Diese Antwort ist viel einfacher als die anderen, da sie sich nur um die endgültige Ausgabe kümmert. Immer richtig. In anderen Fällen wissen wir nicht, wie wir das Problem beheben können, wenn der Signaturprozess falsch konfiguriert wurde.
hakuna1811
1
Awesome Arbeit wie Charme Danke Kumpel
Dheeraj Jaiswal
14

Der richtige Schlüssel kann von der App selbst abgerufen werden, indem der folgende Code hinzugefügt wird, um auf den richtigen Schlüssel-Hash zu rösten (ab Facebook SDK 3.0 funktioniert dies).

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());
                String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("MY KEY HASH:", sign);
                Toast.makeText(getApplicationContext(),sign,         Toast.LENGTH_LONG).show();
            }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Ersetzen Sie com.package.mypackage durch Ihren Paketnamen

Tigerden
quelle
Generieren Sie damit HashKey für den Debug- und Release-Modus. stackoverflow.com/questions/7506392/…
Naeem Ibrahim
12

I. Erstellen Sie ein Key-Hash-Debug für Facebook

Fügen Sie Code hinzu, um den Schlüssel-Hash für Facebook auszudrucken

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.google.shoppingvn", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

II. Erstellen Sie eine wichtige Hash-Version für Facebook

  1. Laden Sie openssl-0.9.8e_X64 herunter

  2. Erstellen Sie einen openssl-Ordner im Laufwerk C.

  3. Extrahieren Sie Zip-Dateien in den openssl-Ordner

  4. Start -> Ausführen: cmd (drücken Sie die Eingabetaste)

  5. (drücken) cd C: \ Programme \ Java \ jdk1.6.0_45 \ bin. Hinweis: C: \ Programme \ Java \ jdk1.6.0_45 \ bin: ist der Pfad zum JDK-Ordner auf Ihrem Computer

  6. (drücken) keytool -exportcert -alias gci -keystore D: \ folder \ keystorerelease | C: \ openssl \ bin \ openssl sha1 -binary | C: \ openssl \ bin \ openssl base64. Hinweis: D: \ folder \ keystorerelease: ist der Pfad zu Ihrer Keystorerelease

  7. Keystore-Passwort eingeben: Dies ist das Passwort, wenn Ihr Register-Keystorer freigegeben wird.

    Dann haben Sie einen Schlüssel-Hash: jDehABCDIQEDWAYz5Ow4sjsxLSw =

  8. In Facebook anmelden. Zugriff auf Apps verwalten. Fügen Sie Schlüssel-Hash in Ihre App auf developer.facebook.com ein

Anh Duy
quelle
Generieren Sie damit HashKey für den Debug- und Release-Modus. stackoverflow.com/questions/7506392/…
Naeem Ibrahim
9

EINFACHSTE LÖSUNG FÜR DIESES PROBLEM:

Ich habe dieses Problem jetzt seit zwei Monaten. Meine Schlüssel-Hashes waren bis zu 9 pyliert. Heute habe ich endlich die einfache Lösung gefunden:

SCHRITT 1:

Installieren Sie das Facebook SDK, das Sie von der Facebook-Entwicklerseite heruntergeladen haben, auf Ihrem Telefon. Installiere nicht die normale Facebook App. Stellen Sie sicher, dass Sie sich bei Facebook anmelden können. Dann melden Sie sich ab.

SCHRITT 2:

Exportieren Sie Ihre App mit Ihrem endgültigen Release-Schlüssel als Apk, wie Sie es beim Hochladen in den Playstore tun würden.

SCHRITT 3:

Legen Sie die Apk-Datei über ein USB-Kabel oder einen USB-Stick auf Ihr Telefon.

SCHRITT 4:

Installieren Sie Ihre App mithilfe eines Dateimanagers: Beispiel

SCHRITT 5:

Starten Sie Ihre App und versuchen Sie, sich mit Facebook anzumelden. Ein Dialogfeld wird geöffnet und zeigt an: "Der Schlüssel YOURHASHKEY wurde in der Facebook-Entwicklerkonsole nicht gefunden."

SCHRITT 6:

Schreiben Sie den Schlüssel auf.

SCHRITT 7:

Legen Sie es in Ihre Facebook-Entwicklerkonsole und speichern Sie es. Jetzt bist du fertig. Jeder, der Ihre App herunterlädt, die mit einem früher verwendeten Keystore veröffentlicht wurde, kann sich bei Facebook anmelden.

Genießen

Sakramento
quelle
Nur eine Anmerkung: Sie müssen '=' setzen, nachdem der Schlüssel aus dem Protokoll kopiert wurde
akshay7692
7

Wenn Sie freigeben, verwenden Sie den Keystore, mit dem Sie Ihre App exportiert haben, und nicht den debug.keystore.

trgraglia
quelle
1
Hallo, ich habe versucht, den Keyhash mithilfe meines Anwendungs-Keystores zu generieren. Wenn ich jedoch versuche, etwas aus meiner Anwendung freizugeben, wird die Fehlermeldung angezeigt, dass die Anwendung für die Facebook-Anmeldung falsch konfiguriert ist. Aber wenn ich Keyhash versuche, der über debug.keystore generiert wurde, funktioniert es. Kannst du mir bitte dabei helfen?
KunalK
6

Das Passwort des Debug-Zertifikats lautet Android und nicht Android

Fernando Gallego
quelle
6

Zu guter Letzt :)

Hier meine Geschichte:

  1. Fügen Sie diesen Code Ihrer Hauptaktivität hinzu, nachdem Sie das Layout festgelegt haben.

    try { 
      PackageInfo info = getPackageManager().getPackageInfo("PROJECTNAME", PackageManager.GET_SIGNATURES);
      for (Signature signature : info.signatures) {
          MessageDigest md = MessageDigest.getInstance("SHA");
          md.update(signature.toByteArray());
          String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
          Log.e("MY KEY HASH:", sign);
          //textInstructionsOrLink = (TextView)findViewById(R.id.textstring);
          //textInstructionsOrLink.setText(sign);
          Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
      }
    } catch (NameNotFoundException e) {
        Log.d("nope","nope");
    } catch (NoSuchAlgorithmException e) {
    }
  2. Ändern Sie PROJECTNAME in Ihren Paketnamen!

  3. Signieren Sie Ihre App (Android Tools-> Exportierte signierte Anwendung)
  4. Erstellen Sie in Ihrer Hauptaktivität, in der Sie Code aus der Option 2 einfügen, in Ihrem Layout TextView mit der ID-Textzeichenfolge
  5. Kommentieren Sie zwei Zeilen aus, dass Ihr Vorzeichencode auf TextView 6 Wuolia gesetzt wäre. Sie haben Ihren HASH. Installieren Sie die App auf Ihrem Telefon. und überprüfen Sie Ihren Hash-Schlüssel!
  6. Wenn es jetzt sichtbar ist, gehe zu der von dir erstellten Facebook-App und füge sie zu [Key Hashes] hinzu.
  7. Beachten Sie, dass Ihr Paketname mit dem auf Facebook [Paketname] unter [Key Hashes] identisch sein sollte.
  8. Einen schönen Tag noch :)
Vasilij
quelle
5

Einzeilige Lösung für Facebook zu generieren

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

Um einen Release-Key-Hash zu generieren, müssen Sie einige einfache Schritte ausführen.

1) Laden Sie Openssl herunter

2) Erstellen Sie einen openssl-Ordner im Laufwerk C.

3) Extrahieren Sie Zip-Dateien in diesen in C Drive erstellten openssl-Ordner.

4) Kopieren Sie die Datei debug.keystore aus dem Ordner .android in meinem Fall (C: \ Users \ SYSTEM.android) und fügen Sie sie in den Fall JDK bin ein (C: \ Programme \ Java \ jdk1.6.0_05 \ bin).

5) Öffnen Sie die Eingabeaufforderung und geben Sie in meinem Fall den Pfad des JDK-Bin-Ordners an (C: \ Programme \ Java \ jdk1.7.0_40 \ bin).

6) Kopieren Sie den folgenden Code und drücken Sie die Eingabetaste

keytool -exportcert -alias abcd-keystore D: \ Projects \ MyAppFolder \ keystore.txt | C: \ openssl \ bin \ openssl sha1 - binär | C: \ openssl \ bin \ openssl base64 ex - keytool -exportcert -alias (Ihr Sing-Apk-Alias-Name wird hier eingegeben, so wie mein Zeichen-Apk-Alian-Name abcd lautet) "openssl bin Ordnerpfad hier eingeben" sha1 - binary | "openssl bin Ordnerpfad hier eingeben" base64

7) Jetzt müssen Sie das Passwort eingeben, Passwort = (geben Sie hier Ihr Passwort für den Signaturschlüsselspeicher ein)

8) Sie haben einen Keystore, der für die Freigabe des App-Schlüssel-Hash verwendet wird

Vijay Rajput
quelle
3

Obwohl dieser Thread alt ist, möchte ich meine Erfahrungen (die kürzlich mit Facebook begonnen haben) teilen, was mir klar erscheint:

  1. Laden Sie openssl über den folgenden Link herunter: https://code.google.com/p/openssl-for-windows/downloads/list
  2. Entpacken Sie es auf ein lokales Laufwerk (z. B. C: \ openssl).
  3. Verwenden Sie den folgenden Befehl über die Befehlszeile in Windows, um den Entwicklungsschlüssel für die Facebook-Integration abzurufen:

    keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ openssl.exe" base64

HINWEIS!: Bitte ersetzen Sie den Pfad für openssl.exe (in diesem Beispiel "C: \ openssl \ bin \ openssl.exe") durch Ihren eigenen Installationspfad.

  1. Es wird nach einem Passwort gefragt, z.

Geben Sie das Keystore-Passwort ein: android

Geben Sie wie oben gezeigt Android als Passwort ein.

Das ist es! Sie erhalten einen 28 Zeichen langen Schlüssel. Prost!

Gehen Sie genauso vor, um den Release-Schlüssel zu erhalten. Ersetzen Sie einfach den Befehl durch den folgenden und verwenden Sie Ihren Release-Schlüssel-Alias.

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | "PATH FOR openssl.exe" sha1 -binary | openssl base64

Mahbubul Syeed
quelle
Aber es zeigt die Frage nach dem Passwort. Ich gebe auch das signierte Keystore-Passwort und dann die chinesische Sprachanzeige
Harsha,
Stellen Sie
3

Debug-Hash-Schlüssel generieren

  public String hashkey(Context context) {
        String keyhash = "";
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(context.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));
                keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            }
        } catch (PackageManager.NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        return keyhash;
    }

Release-Hash-Schlüssel generieren

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
Ashutosh Srivastava
quelle
2

Toller Blogbeitrag zu diesem Thema

Extrahieren des Schlüssel-Hash aus dem .p12-Schlüssel

  1. Öffnen Sie das Terminal oder die Befehlszeile und navigieren Sie zu Ihrer .p12-Taste.
  2. Geben Sie Folgendes ein: "keytool -v -list -keystore mycert.p12 -storetype pkcs12", wobei mycert.p12 der Dateiname Ihres .p12-Schlüssels ist.
  3. Geben Sie das Keystore-Passwort ein (das, das Sie beim Exportieren des P12-Schlüssels verwendet haben). 4. Kopieren Sie den Text der sha1-Fingerabdruck-Signaturbytes.
  4. Die Bytes bei der sha1-Fingerabdrucksignatur werden zum Schreiben der Datei "sha1.bin" benötigt. Sie können einen hexadezimalen Editor verwenden, um die kopierten Bytes einzufügen. Speichern Sie anschließend die Datei als "sha1.bin".
  5. Öffnen Sie das Terminal erneut und geben Sie Folgendes ein: "openssl base64 -in sha1.bin -out base64.txt".
  6. Die resultierende "base64.txt" enthält den Key Hash, der für Facebook benötigt wird.

Toller und einfacher Hexadezimal-Editor für Mac: HexFiend

OpenSSL sollte auf dem Mac vorinstalliert sein. Hier ist der Link für die Windows-Version.

Verknüpfung

Thyselius
quelle
Dies sind großartige Informationen für Entwickler von Adobe AIR-Apps (Flash oder Apache Flex). Und der " AppEntry
Alexander Farber
2

Übergeben Sie das Kennwort für den Schlüssel und speichern Sie es als Teil des Befehls

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
Sam Stern
quelle
1

Ich konnte die angeforderte Aufgabe mit einigen der hier aufgeführten Lösungen ausführen, dachte mir aber, Junge, das ist dumm ... warum nicht einen kleinen Java-Code schreiben, der dies tut, und ihn in ein Glas packen, also tat ich es. ..

Ein Link zum Herunterladen des Glases

Funktioniert unter Windows 8 ... hat kein anderes Betriebssystem ausprobiert.

TacB0sS
quelle
1
Was ich nicht verstehe, ist, wenn ich ein paar Stunden gebraucht habe, um alles zu lernen und dies zu skizzieren, warum keines der großen Unternehmen dies bereits getan hat, um uns eine einfache Möglichkeit zu bieten, die Informationen zu erhalten, die sie von uns verlangen ???
TacB0sS
1

Hallo allerseits, meine Geschichte, wie ich unterschrieben werde, hat einen Schlüssel für Facebook

Zunächst müssen Sie diese beiden Methoden in Ihre erste Klasse kopieren

    private void getAppKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;

            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String something = new String(Base64.encode(md.digest(), 0));
            System.out.println("HASH  " + something);
            showSignedHashKey(something);

        }
    } catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        Log.e("name not found", e1.toString());
    } catch (NoSuchAlgorithmException e) {

        Log.e("no such an algorithm", e.toString());
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
}
public void showSignedHashKey(String hashKey) {

    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle("Note Signed Hash Key");
    adb.setMessage(hashKey);
    adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    adb.show();
}

** Rufen Sie die Funktion getAppKeyHash () von Ihrer oncreate-Methode auf, wenn Sie einen signierten Hash möchten, und führen Sie dann einen signierten Build aus. Installieren Sie einen signierten Build und führen Sie ihn aus signierte APK **

Prashant Maheshwari Andro
quelle
1

Wenn dein Passwort = Android falsch ist, dann lege dein PC-Passwort darauf, dass es für mich funktioniert.

Und um keyHash zu generieren, versuchen Sie diesen Link hier

Arpit Patel
quelle
0

Das einzige, was für mich funktioniert, ist die Verwendung des Passworts android. Warum wird das in keinem Leitfaden erwähnt?

Remi Sture
quelle
0

Verwenden Sie dies in Kotlin für den Druckschlüssel-Hash im Protokoll

try {
        val info = context.getPackageManager().getPackageInfo(context.packageName,
                PackageManager.GET_SIGNATURES);
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            Log.d("Key hash ", android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT))
        }
    }catch (e:Exception){

    }
Prashant Jajal
quelle