Jak stworzyć Android Facebook Key Hash?


181

W ogóle nie rozumiem tego procesu. Udało mi się przejść do folderu zawierającego narzędzie w zestawie Java SDK. Chociaż ciągle pojawia się błąd, openssl nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne. Problem w tym, że nawet jeśli uda mi się to uruchomić, co bym zrobił i z czym potem?


jeśli korzystasz z najnowszego sdk na Facebooku i jeśli perfekcyjnie umieściłeś interfejs API na Facebooku, to po zalogowaniu klikasz login na facebooku, a następnie w logcat drukowany jest klucz skrótu.
Mehul Ranpara

aby wygenerować skrót klucza na komputerze lokalnym, uruchom narzędzie keytool Javy (które powinno znajdować się na ścieżce konsoli) w magazynie kluczy debugowania Androida. Jest to domyślnie w twoim domowym katalogu .android). W systemie OS X uruchom: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64 W systemie Windows użyj: - keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% \. android \ debug.keystore | openssl sha1 -binary | openssl base64
Rakesh

Dlaczego ktoś miałby chcieć utworzyć klucz debugowania?
Anders Lindén,

Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva,

Odpowiedzi:


241

Oto, co musisz zrobić -

Pobierz openSSl z kodu Wypakuj go. utwórz folder - OpenSSL w C: / i skopiuj tutaj wyodrębniony kod.

wykryj ścieżkę do pliku debug.keystore. Jeśli nie znalazłeś, przeprowadź wyszukiwanie w C: / i użyj ścieżki w poleceniu w następnym kroku.

wykryj ścieżkę keytool.exe i przejdź do wiersza polecenia dir / in i uruchom to polecenie w 1 wierszu

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

poprosi o hasło, wstaw Androida, to wszystko. dostaniesz skrót klucza


kiedy pojawia się pytanie o hasło, czy mogę umieścić coś, co chcę?
Somk

5
@Max, domyślne hasło to android.
jamapag

2
skrót skrótu nie pasuje do żadnego zapisanego skrótu klucza dla Androida, nie działa
Boldijar Paul

1
Najpierw utwórz magazyn kluczy, przechodząc do Build -> Build Apk ze swojego studia. podaj nazwę i hasło itp. Zapisz go jako plik .jks w łatwo dostępnym folderze. Teraz skopiuj ścieżkę i wygeneruj klucz, zastępując tę ​​ścieżkę w wyżej wymienionej odpowiedzi.
buggydroid

1
Pokazuje mi błąd: „... Wyrażenia są dozwolone tylko jako pierwszy element potoku. W linii: 1 znak: 184 ... Nieoczekiwany token„ sha1 ”w wyrażeniu lub instrukcji. ... Wyrażenia są dozwolone tylko jako pierwszy element potoku. ... Nieoczekiwany token „base64” w wyrażeniu lub instrukcji. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: ExpressionsMustBeFirstInPipeline ”
programista Androida

175

Dla systemu Linux i Mac

Otwarty terminal:

Do kompilacji debugowania

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

Znajdziesz debug.keystore w folderze „.android”. Skopiuj go i wklej na pulpit i uruchom powyższe polecenie.

Do wydania Kompilacja

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

UWAGA: Upewnij się, że w obu przypadkach prosi o hasło. Jeśli nie prosi o hasło, oznacza to, że coś jest nie tak z poleceniem. Hasło do debug.keystore to android ”, a do wydania należy wprowadzić hasło ustawione podczas tworzenia magazynu kluczy .


3
Żeby było jasne, hasło jest puste. Po wyświetleniu monitu po prostu naciśnij <enter>.
Tom Redman

Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva,

1
Ta uwaga: „UWAGA: Upewnij się, że w obu przypadkach prosi o hasło. Jeśli nie prosi o hasło, oznacza to, że coś jest nie tak z poleceniem”. było niezbędne do rozwiązania problemu
Bleno Silva,

Dziękuję ci za uratowanie mi życia. przez cały czas jem hasło mojego Maca do hasła do magazynu kluczy i zdałem sobie sprawę, że to było złe
Lucky Angelo

1
Nawet pytanie o hasło nie oznacza, że ​​wszystko jest w porządku (złe hasło, zły alias klucza). keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>Najpierw biegnij sam, aby sprawdzić, czy wszystko jest w porządku. Dodatkowo, po zakończeniu instalacji, keytool działa w trybie nieinteraktywnym i pokazuje hasło w postaci zwykłego tekstu po jego wprowadzeniu. Więc lepiej napisz mały skrypt, który uruchamia polecenia osobno.
Pierre

98

Spróbuj tego:

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

Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva

to jest najlepsza droga
Tintinabulator Zea

1
Działa to, jeśli wywołasz pContext.getPackageInfo. Lub po prostu usuń go z funkcji i wywołaj w onCreate dowolnej aktywności.
Dpedrinha

1
Teraz wydaje się, że jest to getPackageManager (). GetPackageInfo ([twoja_nazwa_pakietu], PackageManager.GET_SIGNATURES)
do

@Apurva Możesz umieścić go w Android SharedPreferences na wypadek, gdybyś później z niego skorzystał.
Maddy

49

OpenSSL: Musisz go zainstalować, jeśli nie jest fabrycznie zainstalowany z systemem operacyjnym (np. Windows nie ma go wstępnie zainstalowanego) . Sposób instalacji zależy od systemu operacyjnego (w przypadku systemu Windows sprawdź łącze dostarczone przez coder_For_Life22).

Najłatwiejszym sposobem na obejście się jest kopiowanie pliku binarnego openssl.exe na ścieżkę do narzędzia w systemie Windows. Jeśli nie chcesz tego robić, musisz dodać go do PATHzmiennej środowiskowej. Następnie wykonaj polecenie podane w dokumentach.

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

Zauważ, że argument po -keystore wskazuje na twój debugujący magazyn kluczy. Ta lokalizacja zależy również od systemu operacyjnego. Powinien znajdować się w jednej z następujących lokalizacji:

  • Windows Vista lub 7 - C: \ Users \ .android \ debug.keystore
  • Windows XP - C: \ Documents and Settings \ .android \ debug.keystore
  • OS X i Linux - ~ / .android / debug.keystore

Jeśli wszystko zrobiłeś dobrze, pojawi się monit o podanie hasła. To dotyczy androidcertyfikatu debugowania. Jeśli hasło jest prawidłowe, konsola drukuje skrót (nieco losowe znaki i liczby).

Weź to i skopiuj do android key hashpola w preferencjach aplikacji na Facebooku. Aby się tam dostać, przejdź na stronę developers.facebook.com/apps , wybierz aplikację, przejdź do Edit settingsi przewiń w dół. Następnie poczekaj kilka minut, aż zmiany zaczną obowiązywać.


Uruchomiłem to w cmd i wyświetli bardzo długą listę znaków wyglądających jak skrót kończący się na znaku =, a następnie nic $ keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ .android \ debug.keystore" | "C: \ OpenSSL \ bin \ openssl" sha1 -binary | "C: \ OpenSSL \ bin \ openssl" base64
Somk

Brzmi poprawnie. Właśnie przetestowałem to na mojej maszynie, miałem dla mnie 28 znaków, aby dać ci pomysł. Teraz wystarczy skopiować i wszystko jest w porządku. :)

Nie zostałem jednak poproszony o użycie pharse Androida. Przepraszam, że jestem wolny?
Somk

Szczerze mówiąc, nie jestem pewien, dlaczego nie zostałeś o to poproszony. Ale dla mnie to brzmi poprawnie. To znaczy, jeśli zrobiłbyś coś złego, zamiast tego powinien zostać wyświetlony komunikat o błędzie. Po prostu skopiuj go i sprawdź, czy działa. Możesz przetestować niektóre zapytania dotyczące grafów za pomocą Graph API Explorer . Wybierz aplikację u góry i sprawdź, czy uzyskasz prawidłowe wyniki. Powinien wypluć błąd, jeśli coś jest nie tak. Edycja: I nic złego w byciu wolnym. Nie spieszymy się. :)

24

aby wygenerować skrót klucza na komputerze lokalnym, uruchom narzędzie keytool Javy (które powinno znajdować się na ścieżce konsoli) w magazynie kluczy debugowania Androida. Jest to domyślnie w twoim domowym katalogu .android). W systemie OS X uruchom:

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

W systemie Windows użyj: -

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

mam nadzieję, że ci to pomoże

Ref - strona dewelopera na Facebooku


Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva,

19

Oto pełne informacje (dla systemu Windows)

1. Pobierz OpenSSl na 3 lub 4 (e będzie działał lepiej) w oparciu o system 32-bitowy lub 64-bitowy.

2. Wypakuj pobrany plik zip do katalogu C.

3. Otwórz rozpakowany folder do bin i skopiuj ścieżkę, powinno to być coś takiego C:\openssl-0.9.8k_X64\bin\openssl (dodaj \ openssl na końcu)

4. (Uzyskaj ścieżkę do folderu bin Jdk, jeśli wiesz, jak to zignorować).

Otwórz studio Android ~ plik ~ Struktura projektu (ctrl + alt + shift + s), wybierz lokalizację SDK w lewym panelu bocznym, skopiuj lokalizację JDK i dodaj / bin do niej

Ostateczna lokalizacja JDK będzie podobna C:\Program Files\Android\Android Studio\jre\bin

stosujemy tę metodę, aby uzyskać lokalizację Jdk, ponieważ możesz używać osadzonego jdk takiego jak ja

wprowadź opis zdjęcia tutaj

teraz masz lokalizację OpenSSl i lokalizację JDK

5. teraz potrzebujemy lokalizacji magazynu kluczy debugowania, aby otworzyć C ~> Users ~> YourUserName ~> .android powinna istnieć nazwa pliku debug.keystore, teraz skopiuj lokalizację ścieżki, powinno to być coś w rodzaju

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

6. teraz otwórz wiersz polecenia i wpisz polecenie

cd YourJDKLocationFromStep4  

w moim przypadku

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

7. teraz skonstruuj następujące polecenie

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

w moim przypadku polecenie będzie wyglądać

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

teraz wpisz to polecenie w wierszu polecenia, jeśli zrobiłeś coś dobrze, zostaniesz poproszony o hasło (hasło to android)

Enter keystore password:  android

to znaczy, otrzymasz Kluczową Skrypt, po prostu skopiuj go i użyj

Dla podpisanego KeyHash zbuduj następujące polecenie

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

wprowadź hasło do magazynu kluczy, jeśli wpiszesz błędne hasło, otrzymasz nieprawidłowe KeyHash

UWAGA

Jeśli z jakiegoś powodu błąd podany w jakiejś ścieżce, to zawiń tę ścieżkę w podwójny cudzysłów. Również powłoka zasilania systemu Windows nie działała dla mnie dobrze, użyłem git bash (lub użyj wiersza polecenia).

przykład

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
Dziękuję bardzo, to bardzo szczegółowy przewodnik dla początkujących!
Pablo Quemé,

@TamimProduction spróbuj wykonać powyższą procedurę z wersją k openssl i zobacz code.google.com/archive/p/openssl-for-windows/downloads
Manohar Reddy

@TamimProduction, jeśli wpiszesz nieprawidłowe hasło, zwróci nieprawidłową kombinację klawiszy. Zbudowałeś też apk ponownie po usunięciu magazynu kluczy?
Manohar Reddy,

@TamimProduction pobierz i zainstaluj aplikację Facebook, zaloguj się w aplikacji Facebook. otwórz aplikację i zaloguj się na Facebooku. Daje ci kluczową wartość skrótu w aplikacji Facebook, sprawdź, czy jest taka sama jak Twoja
Manohar Reddy


18

Możesz po prostu użyć jednego wiersza javascript w konsoli przeglądarki, aby przekonwertować klucz mapy szesnastkowej na base64. Otwórz konsolę w najnowszej przeglądarce (F12 na windows) i wklej kod i wymień SHA-1, SHA-256hex mapę, która gra Google udostępnia pod 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
Jesteś ratownikiem, Dzięki
Yusuf Adeyemo

SHA-1 był tym jedynym.
Travo

16

Jest też krótkie rozwiązanie. Po prostu uruchom to w swojej aplikacji:

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

Dłuższy, który nie potrzebuje FB SDK (na podstawie rozwiązania tutaj ):

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

Wynik powinien kończyć się „=”.


1
Zauważyłem, że mój klucz skrótu zawiera „_”, co nie jest dozwolone przez FB. Aby użyć skrótu, musiałem zmienić go na „/”.
Abdelalim Hassouna

Funkcja Facebook zwróciła mój klucz, ponieważ -AAAAAAAA_AAAAAA-AAAAAAAAAAFacebook nie zezwala na to, printHashKey zwrócił klucz w prawidłowym formacie+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov,

@GrafOrlov Jak dziwne. Może mają błąd w nowej wersji FB SDK. Powinieneś im to zgłosić.
programista Androida

9

Dla Windowsa:

  1. otwórz wiersz polecenia i wklej poniżej polecenia

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

  1. Wpisz hasło: android -> Hit Enter

  2. Skopiuj wygenerowany klucz skrótu -> Zaloguj się na Facebooku za pomocą konta programisty

  3. Przejdź do aplikacji na Facebooku -> Ustawienia -> Wklej klawisz skrótu w opcji „skróty klawiszowe” -> zapisz zmiany.

  4. Teraz przetestuj aplikację na Androida za pomocą Facebooka Zaloguj się / Udostępnij itp.


Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva

Cześć, jestem w stanie wygenerować klucz skrótu za pomocą kodu w mojej głównej działalności, ale ten wygenerowany klucz skrótu działa tylko na jednym urządzeniu. Gdy instaluję ten sam plik APK na innym urządzeniu i uruchamiam go, wyświetla błąd nieprawidłowego klucza skrótu. Czy coś mi brakuje?
Deepak

8

Od API 26 możesz generować KLAWISZE HASH przy użyciu następującego kodu w KOTLIN, bez potrzeby korzystania z SDK Facebooka.

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

}

wprowadź opis zdjęcia tutaj


Masz na myśli, że umieszczam Twój kod w class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
asdfasdf

6

W ten sposób otrzymałem mój:

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

Więc kiedy próbujesz wejść bez klucza, wystąpi wyjątek. Facebook umieścił PRAWY klucz w tym wyjątku. Wszystko, co musisz zrobić, to skopiować.


Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva

6

Jeśli aplikacja została już przesłana do sklepu Play, możesz wygenerować klucz skrótu w następujący sposób:

1) Przejdź do zarządzania wersjami tutaj

2) Wybierz Zarządzanie wersjami -> Podpisywanie aplikacji

3) Możesz zobaczyć klucz SHA1 w formacie szesnastkowym Certyfikat podpisywania aplikacji.


4) Skopiuj SHA1 w formacie heksadecymalnym i przekonwertuj go na format base64, możesz skorzystać z tego linku bez SHA1: części heksadecymalnej.


5) Przejdź do konsoli programisty Facebooka i dodaj klucz (po konwersji do bazy 64) w ustawieniach -> podstawowe -> skróty klawiszowe.



3

Pobierz otwarty ssl :

Następnie dodaj openssl \ bin do zmiennych systemowych ścieżki:

Mój komputer -> właściwości -> Zaawansowane konfiguracje -> Zaawansowane -> Zmienne systemowe -> w polu Zmienne systemowe znajdź ścieżkę i dodaj ją do jej zakończeń:; twoj_PullOpenSSLDir \ bin

Teraz otwórz wiersz polecenia w folderze jdk \ bin C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (w systemie Windows przytrzymaj klawisz Shift i kliknij prawym przyciskiem myszy -> otwórz tutaj wiersz polecenia) i użyj:

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

I skopiuj wygenerowany numer 28 długości po podaniu hasła.


Nie widziałem, że oryginalna odpowiedź ma już link openssl. Ale nadal jest przydatny dla zmiennej systemowej.
sagits

Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva

Oczywiście, czy na pewno wygenerowałeś numer długości 28? Jeśli tak, teraz musisz przejść do strony dewelopera Facebooka (szukaj w google) i utworzyć nową aplikację, w ustawieniach możesz dodać nową aplikację na Androida, tam wkleisz klucz i nazwę aktywności (gdzie znajduje się kod logowania ). Jest też samouczek na ten temat na Facebooku
sagits

Dzięki za szybką odpowiedź, wypróbuję ją wkrótce
Apurva

3

Uruchom albo w swojej aplikacji:

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

Albo to:

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

A potem spójrz na dzienniki.

Wynik powinien kończyć się „=”.

Rozwiązanie oparte jest tutaj i tutaj .


3

ŁATWY SPOSÓB -> Nie instaluj openssl -> UŻYJ GIT BASH!

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

Domyślne hasło to „android”

Większość z nas ma zainstalowaną Git Bash, więc to mój ulubiony sposób.


3

pomoże to również noworodkom.

po prostu dodając więcej szczegółów do odpowiedzi @ coder_For_Life22.

jeśli ta odpowiedź pomoże ci nie zapomnieć o głosowaniu. motywuje nas.

w tym celu musisz już znać ścieżkę do pliku kluczy aplikacji i hasła

do tego przykładu. Weź pod uwagę, że klucz jest przechowywany w „c: \ keystorekey \ new.jks”

1. otwórz tę stronę https://code.google.com/archive / p / openssl-for-windows / downloads

2. pobierz 32 lub 64-bitowy plik zip zgodnie z systemem operacyjnym Windows. 5. teraz na klawiaturze naciśnij Windows + przycisk r. 7. wpisz cmd i naciśnij Ctrl + Shift + Enter . 8. to otworzy wiersz polecenia jako administrator. 9. tutaj przejdź do folderu bin Java:

3. rozpakuj pobrany plik gdziekolwiek chcesz i zapamiętaj ścieżkę.

4. W tym przykładzie uważamy, że rozpakowałeś folder w folderze pobierania.

więc adres pliku to „C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe”;



6. otworzy się okno uruchamiania. jeśli używasz jre dostarczonego przez Android Studio, znajdziesz ścieżkę w następujący sposób: a. otwórz studio Androida. b. plik-> struktura projektu c. w lewym okienku kliknij „Lokalizacja SDK” d. w prawym okienku poniżej „lokalizacji JDK” znajduje się ścieżka do środowiska Jre. mi. dodaj „\ bin” na końcu tej ścieżki, ponieważ plik „keytool.exe”, którego potrzebujemy, znajduje się w tym folderze. dla tego przykładu uważam,














„C: \ Program Files \ Java \ jre-10.0.2 \ bin”,
jeśli zainstalowałeś 32 -bitową Javę , będzie to w
„C: \ Program Files (x86) \ Java \ jre-10.0.2 \ bin”
10. teraz z powyższymi ścieżkami wykonaj polecenie w następujący sposób:

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. Zostaniesz poproszony o hasło, podaj hasło, które podałeś podczas tworzenia klucza do magazynu kluczy.

    !!!!!! to da ci klucz

błędy: jeśli otrzymasz:
---
„keytool” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne
---
oznacza to, że Java jest zainstalowana gdzie indziej.


3

krok 1-> C: \ Program Files \ Java \ jdk1.6.0_43 \ bin>

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

masz wartość SHA1 kliknij ten link u przekonwertuj wartość SHA1 na klucz skrótu

jestem w 100% pewien, że ten link pomoże ci



2

Możesz pobrać wszystkie swoje odciski palców z https://console.developers.google.com/projectselector/apis/credentials
I użyj tego kodu Kotlin, aby przekonwertować go na skrót:

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 - 25 stycznia 2017 r

Facebook SDK

Zmodyfikowano

Zestaw SDK Facebooka jest teraz automatycznie inicjowany po uruchomieniu aplikacji. W większości przypadków ręczne wywołanie FacebookSDK.sdkInitialize () nie jest już potrzebne. Zobacz uaktualnienia przewodnik po więcej szczegółów.

Do debugowania

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

Po prostu uruchom ten kod w OnCreateView lub OnStart Actvity, a ta funkcja zwróci Ci skrót klucza programistycznego .

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

Miałem dokładnie ten sam problem, nie zostałem poproszony o hasło i wygląda na to, że miałem niewłaściwą ścieżkę do pliku kluczy.

W rzeczywistości, jeśli narzędzie nie znajdzie zestawu kluczy, który ustawiłeś, utworzy go i da ci zły klucz, ponieważ nie używa poprawnego.

Ogólna zasada jest taka, że ​​jeśli nie zostaniesz poproszony o podanie hasła, wygenerowany zostanie niewłaściwy klucz.


Wygenerowałem klucz skrótu, ale nie wiem, gdzie go umieścić, poprowadzisz mnie? Używam Android Studio na Ubuntu.
Apurva

0

Można użyć tej 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 It's Chinese: D
armnotstrong


0

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

2 Zmiany w powyższym poleceniu 1.Deepak === Zastąp przez system NAZWA UŻYTKOWNIKA 2.C: \ Users \ Deepak \ ssl === zastąp ścieżkę Open SSL

uruchom to polecenie i uzyskaj wynik w ten sposób

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 Wprowadź hasło do magazynu kluczy: ****** ga0RGNY ****************** =


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.