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?

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

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

Biraj Zalavadia
źródło
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);
        }
    }
Maddy
źródło
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ć.


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

Rakesh
źródło
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
Manohar Reddy
źródło
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
Daj nam kontynuować tę dyskusję w czacie .
Tamim Attafi
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="
Christos Lytras
źródło
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ę „=”.

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

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

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

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

SumiSadiq
źródło
5

Aby uzyskać łatwy link do samouczka vedio do generowania KeyHash tutaj

Pobierz openssl TUTAJ

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

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

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

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

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

naveen pandi
źródło
3

Łatwy sposób

Korzystając z tej witryny , możesz uzyskać klucz skrótu, przekształcając klucz SHA1 w klucz skrótu na Facebooku.

Sai Gopi N.
źródło
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) }
}
Alexmelyon
źródło
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();
}
Ketan Ramani
źródło
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";
}
Hasib Akter
źródło
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.

Nick Tsitlakidis
źródło
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
armnotstrong
źródło
@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 ****************** =

Deepak Parmar
źródło