Facebook Android generuje skrót klucza

119

Próbując stworzyć aplikację na Androida z integracją z Facebookiem, dotarłem do części w dokumentach, w której musisz wygenerować plik skrótu klucza, określa on uruchomienie następującego kodu

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

Kiedy uruchamiam to na moim terminalu, pojawia się błąd dotyczący manipulowania Keystore lub hasło jest nieprawidłowe,

Chcę tylko wygenerować mój skrót klucza

Czy ktoś może wskazać mi właściwy kierunek?

Scott
źródło
2
Czy używasz prawidłowego hasła?
Prezydent James K. Polk,
Kiedy wprowadzam polecenie do terminala, nie daje mi możliwości wprowadzenia hasła
Scott
Spróbuj wpisać tylko polecenie keytool bez ostatnich dwóch potoków.
Prezydent James K. Polk
6
Rozumiem, czasami jestem taki głupi, wpisz polecenie w całej linii, nie kopiuj i wklejaj
Scott

Odpowiedzi:

20

Usuń swój certyfikat debugowania w ~ / .android / debug.keystore (w systemie Linux i Mac OS X); katalog to coś w rodzaju% USERHOME% /. android w systemie Windows.

Wtyczka Eclipse powinna następnie wygenerować nowy certyfikat przy następnej próbie zbudowania pakietu debugowania.

Daj znać, jeśli to zadziała.

allthenutsandbolts
źródło
nie zadziałało. usunięto plik debug.keystore, utworzono kompilację debugowania, plik nigdy nie wrócił. odnotowując inne zaktualizowane w tym folderze.
CthulhuJon
3
Naprawdę nie wiem, jaka jest akceptowana odpowiedź?
Enoobong
Wygeneruj HashKey dla trybu debugowania i wydania, używając tego. stackoverflow.com/questions/7506392/…
Naeem Ibrahim
281

Aby wygenerować skrót klucza, musisz wykonać kilka prostych kroków.

1) Pobierz Openssl z: tutaj.

2) Utwórz folder openssl na dysku C.

3) Rozpakuj pliki Zip do tego folderu openssl utworzonego na Dysku C.

4) Skopiuj plik debug.keystore z folderu .android w moim przypadku (C: \ Users \ SYSTEM.android) i wklej do folderu bin JDK w moim przypadku (C: \ Program Files \ Java \ jdk1.6.0_05 \ bin)

5) Otwórz wiersz poleceń i podaj ścieżkę do folderu JDK Bin w moim przypadku (C: \ Program Files \ Java \ jdk1.6.0_05 \ bin).

6) Skopiuj poniższy kod i naciśnij Enter

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

7) Teraz musisz wprowadzić hasło , hasło = android.

8) Jeśli zobaczysz w folderze openssl Bin, otrzymasz plik o nazwie debug.txt

9) Teraz możesz ponownie uruchomić wiersz polecenia lub pracować z istniejącym wierszem poleceń

10) Wróć na dysk C i podaj ścieżkę do folderu openssl Bin

11) skopiuj poniższy kod i wklej

openssl sha1 -binary debug.txt> debug_sha.txt

12) otrzymasz debug_sha.txt w folderze bin openssl

13) Ponownie skopiuj poniższy kod i wklej

openssl base64 -in debug_sha.txt> debug_base64.txt

14) otrzymasz debug_base64.txt w folderze bin openssl

15) otwórz plik debug_base64.txt Oto hash klucza.

Vijay Arora
źródło
4
miła odpowiedź +1 dla ciebie Postępowałem zgodnie z tym i otrzymałem pożądany rezultat :)
BBdev
Otrzymuję ten komunikat: błąd narzędzia keytool: java.io.IO Wyjątek: manipulowano przy użyciu magazynu kluczy lub hasło było nieprawidłowe. Jak mogę znaleźć swoje prawidłowe hasło?
DuyguK,
To zadziałało dla mnie po 2 dniach zamieszania w tym, co się dzieje. Świetna robota!
rennoDeniro
4
@Vizzz: Ładny sposób na wyjaśnienie generowania skrótu klucza. Dzięki za ten post, mam nadzieję, że ten post zaoszczędzi komuś dużo czasu.
Emran Hamza
1
Próbowałem każdego kodu, ale nigdy nie uzyskałem pożądanego wyniku. Próbowałem kodu z Facebooka, to również jest to samo, tylko wszystkie trzy polecenia w jednym poleceniu, ale uruchomienie trzech poleceń osobno dało właściwy kod i działało, godzina wyszukiwania lub może dni wyszukiwania. Dzięki. Wcześniej tylko kod w aplikacji na Androida dawał właściwy wynik, wiersz poleceń podawał nieprawidłowe klucze, teraz wszystko jest w porządku.
Jeszcze
149

ZAKTUALIZOWANA ODPOWIEDŹ (Generowanie za pomocą kodu) Prostsza metoda:

Z mojego doświadczenia wynika, że ​​openssl zawsze jest kłopotliwa, więc wypróbowałem drugą metodę sugerowaną przez Facebooka. I to jest cudowne. To najlepsza metoda uzyskania klucza skrótu.

Drugą opcją jest wydrukowanie skrótu klucza wysłanego do Facebooka i użycie tej wartości. Wprowadź następujące zmiany w metodzie onCreate () w swoim głównym działaniu:

    @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

Zastąp com.facebook.samples.loginhowto własną nazwą pakietu (nazwa pakietu w pliku Manifest.xml).

Oficjalny link - https://developers.facebook.com/docs/android/login-with-facebook/ (Zobacz na dole strony)

STARE ODPOWIEDŹ (Generowanie Keyhasha przy użyciu openssl)

  1. aby wygenerować podpis, musisz zainstalować openssl na swoim komputerze. Jeśli nie masz jednego pliku do pobrania openssl stąd
  2. W C openssl:, Utwórz folder
  3. wypakuj zawartość pobranego pliku zip openssl do opensslfolderu na C:dysku
  4. otwórz wiersz polecenia
  5. przenieść się binz openssl IE C:\openssl\binw wierszu polecenia
  6. uruchom następujące polecenie, aby wygenerować swój klucz. Podczas generowania hashkey powinien poprosić o hasło.

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

UWAGA : w powyższym kodzie zauważ, że musisz podać swoją ścieżkę do użytkownika (tj. W moim przypadku jest to C: \ Users \ Anhsirk, wystarczy zmienić to dla swojego konta użytkownika.

Podaj hasło jako android

. Jeśli nie pyta o hasło, ścieżka do magazynu kluczy jest nieprawidłowa.

Jeśli wszystko działa dobrze, powinien dać ci hashkey poniżej.

wprowadź opis obrazu tutaj

AnhSirk Dasarp
źródło
Otrzymuję ten komunikat: błąd narzędzia keytool: java.io.IO Wyjątek: manipulowano przy użyciu magazynu kluczy lub hasło było nieprawidłowe. Jak mogę znaleźć swoje prawidłowe hasło?
DuyguK,
@DuyguK - prawdopodobnie oznacza, że ​​Twój magazyn kluczy już istnieje. Spróbuj to usunąć i powtórz. Albo niewłaściwa ścieżka, którą
wskazałeś
Boże, zajęło mi to godziny. Dziękuję bardzo!
Yenthe
Chcę zapytać, czy nowa metoda (pobieranie kluczy według kodu) spowalnia w jakiś sposób proces onCreate. Ponieważ z tego, co wiem, kiedy tworzony jest podpisany plik APK, skróty kluczy są różne. Dzięki za kod i tak! :)
marson
czy prostsza metoda będzie działać bez emulatora, ale na prawdziwym urządzeniu z Androidem?
24

Najprostszy sposób na wygenerowanie klucza mieszającego.

Wymaganie: klucz SHA1

Klucz SHA1 można uzyskać z pliku kluczy na dwa sposoby

1) Zlokalizuj plik magazynu kluczy, otwórz wiersz polecenia w tej lokalizacji, a następnie użyj poniższego polecenia

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

a następnie wprowadź swoje hasło, a następnie zwróci klucz md5, sha1 i sha256.

LUB

2) Wykonując podpisywanie raportu

Zobacz poniższy obrazek.

wprowadź opis obrazu tutaj

po uruchomieniu pliku dane wyjściowe zostaną wygenerowane z wymaganym kluczem sha1.

wprowadź opis obrazu tutaj

Po uzyskaniu wymaganego klucza SHA1

Następnie idź do

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

i wklej swój klucz sha1

wprowadź opis obrazu tutaj

a na koniec otrzymasz Wymagany HashKey, którego możesz użyć do zastosowania na Facebooku.

Vicky Salunkhe
źródło
2
Ta odpowiedź jest znacznie prostsza niż inne, ponieważ dotyczy tylko końcowego wyniku. Zawsze poprawne. W innych przypadkach, jeśli proces podpisywania zostanie nieprawidłowo skonfigurowany, nie będziemy wiedzieć, jak to naprawić.
hakuna1811
1
Niesamowita praca jak urok. Dziękuję kolego
Dheeraj Jaiswal
14

Właściwy klucz można uzyskać z samej aplikacji, dodając następujący kod, aby wyskoczyć z odpowiedniego skrótu klucza (w przypadku Facebook SDK 3.0 i nowszych, to działa)

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) {
}

Zastąp com.package.mypackage nazwą swojego pakietu

tigerden
źródło
Wygeneruj HashKey dla trybu debugowania i wydania, używając tego. stackoverflow.com/questions/7506392/…
Naeem Ibrahim
12

I. Utwórz debugowanie skrótu klucza dla Facebooka

Dodaj kod, aby wydrukować skrót klucza dla Facebooka

    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. Utwórz kluczową wersję skrótu dla Facebooka

  1. Pobierz openssl-0.9.8e_X64

  2. Utwórz folder openssl na dysku C.

  3. Rozpakuj pliki Zip do folderu openssl

  4. Start -> Uruchom: cmd (naciśnij enter)

  5. (naciśnij) cd C: \ Program Files \ Java \ jdk1.6.0_45 \ bin. Uwaga: C: \ Program Files \ Java \ jdk1.6.0_45 \ bin: to ścieżka do folderu jdk na komputerze

  6. (naciśnij) keytool -exportcert -alias gci -keystore D: \ folder \ keystorerelease | C: \ openssl \ bin \ openssl sha1 -binary | C: \ openssl \ bin \ openssl base64. Uwaga: D: \ folder \ keystorerelease: to ścieżka do twojego wydania kluczy

  7. Wprowadź hasło do magazynu kluczy: To jest hasło używane w celu uzyskania dostępu do rejestru kluczy.

    Wtedy będziesz miał kluczowy skrót: jDehABCDIQEDWAYz5Ow4sjsxLSw =

  8. Zaloguj się na Facebooku. Dostęp do zarządzania aplikacjami. Wklej kluczowy skrót do swojej aplikacji na developers.facebook.com

Anh Duy
źródło
Wygeneruj HashKey dla trybu debugowania i wydania, używając tego. stackoverflow.com/questions/7506392/…
Naeem Ibrahim
9

NAJPROSTSZE ROZWIĄZANIE DLA TEGO PROBLEMU:

Mam ten problem już od dwóch miesięcy. Moje skróty kluczy rosły do ​​9. Dzisiaj w końcu znalazłem proste rozwiązanie:

KROK 1:

Zainstaluj pakiet SDK Facebook pobrany ze strony programisty Facebooka w telefonie. Nie instaluj normalnej aplikacji Facebook. Upewnij się, że możesz zalogować się do Facebooka. Następnie wyloguj się.

KROK 2:

Wyeksportuj swoją aplikację z kluczem ostatecznej wersji jako plik APK, tak jak w przypadku przesyłania jej do sklepu Play.

KROK 3:

Umieść plik APK na telefonie za pomocą kabla USB lub pamięci USB.

KROK 4:

Zainstaluj aplikację za pomocą menedżera plików: przykład

KROK 5:

Uruchom aplikację i spróbuj zalogować się za pomocą Facebooka. Otworzy się okno dialogowe z informacją: „klucz YOURHASHKEY nie został znaleziony w konsoli programisty Facebooka”

KROK 6:

Zapisz klucz.

KROK 7:

Umieść go na swojej konsoli programisty na Facebooku i zapisz. Teraz gotowe. Każdy, kto pobierze Twoją aplikację opublikowaną z wcześniej używanym magazynem kluczy, może zalogować się na Facebooku.

Cieszyć się

Sakramento
źródło
tylko uwaga: musisz wstawić '=' po kluczu skopiowanym z logu
akshay7692
7

Jeśli zwalniasz, użyj magazynu kluczy, którego użyłeś do wyeksportowania aplikacji, a nie pliku debug.keystore.

trgraglia
źródło
1
Cześć, próbowałem użyć magazynu kluczy aplikacji do wygenerowania skrótu kluczy, ale za każdym razem, gdy próbuję udostępnić cokolwiek z mojej aplikacji, pojawia się błąd, że aplikacja jest źle skonfigurowana do logowania na Facebooku. ale kiedy próbuję keyhash wygenerowany przez debug.keystore to działa. czy możesz mi w tym pomóc?
KunalK
6

Hasło certyfikatu debugowania to Android, a nie Android

Fernando Gallego
źródło
6

W końcu :)

Oto moja historia:

  1. Dodaj ten kod do swojej głównej aktywności po ustawieniu układu.

    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. Zmień PROJECTNAME na nazwę swojego pakietu!

  3. Podpisz swoją aplikację (Narzędzia Android-> Eksportuj podpisaną aplikację)
  4. W swojej głównej aktywności, w której wklejasz kod z opcji 2, w swoim układzie utwórz TextView z ciągiem tekstowym id
  5. odkomentuj dwie linie, aby Twój kod podpisu był ustawiony na TextView 6 Wuolia, masz swój HASH, zainstaluj aplikację na telefonie !!! i sprawdź swój klucz skrótu!
  6. Teraz, gdy jest widoczny, przejdź do utworzonej przez siebie aplikacji na Facebooku i dodaj ją do [Key Hashes]
  7. Pamiętaj, że nazwa Twojego pakietu powinna być taka sama jak na Facebooku [Nazwa pakietu] w sekcji [Hasła kluczy]
  8. Miłego dnia :)
Vasilij
źródło
5

Jedno rozwiązanie liniowe do generowania na Facebooku

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Anudeep Samaiya
źródło
4

Aby wygenerować skrót klucza wydania, musisz wykonać kilka prostych kroków.

1) Pobierz Openssl

2) Utwórz folder openssl na dysku C.

3) Rozpakuj pliki Zip do tego folderu openssl utworzonego na Dysku C.

4) Skopiuj plik debug.keystore z folderu .android w moim przypadku (C: \ Users \ SYSTEM.android) i wklej do folderu bin JDK w moim przypadku (C: \ Program Files \ Java \ jdk1.6.0_05 \ bin)

5) Otwórz wiersz poleceń i podaj ścieżkę do folderu JDK Bin w moim przypadku (C: \ Program Files \ Java \ jdk1.7.0_40 \ bin).

6) Skopiuj poniższy kod i naciśnij Enter

keytool -exportcert -alias abcd-keystore D: \ Projekty \ MyAppFolder \ keystore.txt | C: \ openssl \ bin \ openssl sha1 - binarne | C: \ openssl \ bin \ openssl base64 ex - keytool -exportcert -alias (Twoja nazwa aliasu apk singap wpisz tutaj jak moja nazwa alian apk apk abcd) -keystore "podpisany plik kluczy wygenerowany przez apk apth wprowadź tutaj" | "ścieżka folderu bin openssl wprowadź tutaj" sha1 - plik binarny | "ścieżka do folderu bin openssl wprowadź tutaj" base64

7) Teraz musisz wprowadzić hasło, Hasło = (wprowadź tutaj swoje hasło do magazynu kluczy podpisu)

8) masz magazyn kluczy, który jest używany do skrótu klucza aplikacji

Vijay Rajput
źródło
3

Choć ten wątek jest stary, to jednak chciałbym podzielić się swoim doświadczeniem (ostatnio zacząłem pracować z facebookiem), które wydaje mi się proste:

  1. Pobierz openssl z linku poniżej: https://code.google.com/p/openssl-for-windows/downloads/list
  2. Rozpakuj go na dysk lokalny (np. C: \ openssl)
  3. Aby uzyskać klucz programistyczny do integracji z Facebookiem, użyj następującego polecenia z wiersza poleceń w systemie Windows:

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

UWAGA !: proszę zastąpić ścieżkę do openssl.exe (w tym przykładzie jest to „C: \ openssl \ bin \ openssl.exe”) własną ścieżką instalacji.

  1. Poprosi o podanie hasła, np.

Wprowadź hasło magazynu kluczy: android

Wpisz android jako hasło, jak pokazano powyżej.

Otóż ​​to! Otrzymasz klucz o długości 28 znaków. Twoje zdrowie!

Użyj tej samej procedury, aby uzyskać klucz Release. Po prostu zamień polecenie na następujące i użyj aliasu klucza zwolnienia.

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | „ŚCIEŻKA DO openssl.exe” sha1 -binary | openssl base64

Mahbubul Syeed
źródło
ale pokazuje pytanie o hasło, podaję również podpisane hasło do magazynu kluczy, a następnie pokazuję chines laungauge
Harsha
upewnij się, że ścieżka jest poprawnie ustawiona dla openssl \ bin i java ... \ bin
KawaiKx
3

Wygeneruj klucz skrótu debugowania

  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;
    }

Wygeneruj klucz skrótu wydania

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
Ashutosh Srivastava
źródło
2

Świetny wpis na blogu na ten temat

Wyodrębnianie skrótu klucza z klucza .p12

  1. Otwórz Terminal lub wiersz poleceń i przejdź do miejsca, w którym znajduje się klucz .p12.
  2. Wpisz: „keytool -v -list -keystore mycert.p12 -storetype pkcs12 ″ gdzie mycert.p12 jest nazwą pliku twojego klucza .p12.
  3. Wprowadź hasło magazynu kluczy (to, którego użyłeś podczas eksportowania klucza .p12). 4. Skopiuj tekst w bajtach podpisu odcisku palca sha1.
  4. Bajty w sygnaturze odcisku palca sha1 są potrzebne do zapisania pliku „sha1.bin”. Możesz użyć edytora szesnastkowego, aby wkleić skopiowane bajty. Następnie zapisz plik jako „sha1.bin”.
  5. Otwórz terminal ponownie i wpisz: „openssl base64 -in sha1.bin -out base64.txt”.
  6. Wynikowy plik „base64.txt” będzie zawierał klucz skrótu potrzebny dla Facebooka.

Świetny i prosty edytor szesnastkowy dla komputerów Mac: HexFiend

OpenSSL powinien być preinstalowany na Macu, a tutaj jest link do wersji Windows.

Połączyć

Thyselius
źródło
To świetna informacja dla programistów aplikacji Adobe AIR (Flash lub Apache Flex). A „Nazwa klasy” dla logowania jednokrotnego na Facebooku powinna mieć AppEntry
postać
2

Spróbuj przekazać hasło do klucza i zapisz je jako część polecenia

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
Sam Stern
źródło
1

Udało mi się wykonać żądane zadanie z niektórymi rozwiązaniami tutaj, ale pomyślałem sobie, chłopcze, to głupie ... dlaczego nie napisać małego kodu Java, który to robi i spakować go do Jar, więc zrobiłem. ..

Link do pobrania z Jar

Działa na Windows 8 ... nie próbowałem żadnego innego systemu operacyjnego.

TacB0sS
źródło
1
Nie rozumiem, jeśli nauczenie się tego wszystkiego i naszkicowanie zajęło mi kilka godzin, dlaczego żadna z dużych firm nie zrobiła tego już, aby zapewnić nam łatwy sposób na uzyskanie informacji, o które proszą ???
TacB0sS
1

Cześć wszystkim, moja historia, jak się podpisałem, ma klucz do Facebooka

po pierwsze musisz skopiować te dwie metody w swojej pierwszej klasie

    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();
}

** Wywołaj funkcję getAppKeyHash () z metody oncreate, jeśli chcesz podpisany hash, a następnie wykonaj podpisaną kompilację, zainstaluj podpisaną kompilację i uruchom, otrzymasz klucz hash w oknie dialogowym, a następnie po prostu zanotuj go i zaktualizuj na koncie dewelopera na Facebooku i skomentuj tę funkcję i utwórz kolejną podpisany plik APK **

Prashant Maheshwari Andro
źródło
1

Jeśli twoje hasło = android jest nieprawidłowe, umieść hasło do komputera, aby działało dla mnie.

Aby wygenerować keyHash, wypróbuj ten link tutaj

Arpit Patel
źródło
0

Jedyną rzeczą, która działa dla mnie, jest używanie hasła android. Dlaczego nie ma o tym wzmianki w żadnym przewodniku?

Remi Sture
źródło
0

użyj tego w kotlin do wypisywania skrótu klucza w dzienniku

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
źródło