Facebook Android Generuj Klucz Hash

Próbując utworzyć aplikację na Androida z integracją z Facebook, doszedłem do części w dokumentach, gdzie musisz wygenerować plik klucza hash, określa, aby uruchomić następujący kod

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

Kiedy uruchamiam to w moim terminalu, dostaję błąd manipulowania Keystore lub hasło było nieprawidłowe,

Chcę tylko wygenerować swój kluczowy Hash

Czy ktoś może wskazać mi właściwy kierunek?
Author: Janusz, 2011-03-15

20 answers

Usuń certyfikat debugowania w obszarze~/.android / debug.keystore( na Linuksie i Mac OS X); katalog jest podobny do %USERHOME%/.android na Windows.

Wtyczka Eclipse powinna wygenerować nowy certyfikat przy następnej próbie zbudowania pakietu debugującego.

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

 20
Author: allthenutsandbolts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-15 00:02:12

Aby wygenerować key hash musisz wykonać kilka prostych kroków.

1) Pobierz Openssl z: tutaj.

2) Utwórz folder openssl na dysku C

3) Rozpakuj pliki Zip do folderu OpenSSL utworzonego na dysku C .

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

5) otwórz wiersz polecenia i podaj ścieżkę folderu Bin JDK 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 OpenSSL folderze Bin, otrzymasz plik z nazwa debugowania .txt

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

10) wróć do dysku C i podaj ścieżkę folderu OpenSSL Bin

11) skopiuj poniższy kod i wklej

OpenSSL sha1-debugowanie binarne.txt > debug_sha.txt

12) otrzymasz debug_sha.txt w folderze OpenSSL bin

13) ponownie skopiuj następujący kod i wklej

OpenSSL base64-in debug_sha.txt > debug_base64.txt

14) otrzymasz debug_base64.txt w folderze OpenSSL bin

15) otwórz debug_base64.plik txt to Twój kluczowy hash.

 276
Author: Vijay Arora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-28 06:21:35

Zaktualizowana odpowiedź (generowanie za pomocą kodu) prostsza metoda:

Z mojego doświadczenia, openssl zawsze był kłopotliwy, wypróbowałem drugą metodę sugerowaną przez facebook. I to jest cudowne. Jest to najlepsza metoda uzyskania klucza hash.

Drugą opcją jest wydrukowanie hasha klucza wysłanego do Facebook ' a i użycie tej wartości. Wprowadź następujące zmiany w metodzie onCreate () w swojej głównej aktywności:

    @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.próbki.loginhowto z własnym Nazwa pakietu (Nazwa pakietu w manifeście.xml).

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

Stara odpowiedź (generowanie Keyhash przy użyciu openssl)

  1. aby wygenerować podpis musisz zainstalować openssl na swoim komputerze. Jeśli nie masz jednego Pobierz openssl stąd
  2. W C:, Utwórz openssl folder
  3. rozpakuj zawartość pobranego pliku zip OpenSSL do folderu openssl w Dysku C:
  4. otwórz wiersz polecenia
  5. przenieś do bin z openssl tzn. C:\openssl\bin w wierszu polecenia
  6. Uruchom następujące polecenie, aby wygenerować keyhash. Podczas generowania hashkey powinien zapytać Cię o hasło.

    Keytool-exportcert-alias androiddebugkey-keystore "C:\Users\Anhsirk.Android\debug.keystore " / OpenSSL sha1-binary / OpenSSL base64

Uwaga: w powyższym kodzie zauważ, że musisz podać twoja ścieżka do użytkownika (tzn. w moim przypadku jest to C:\Users\Anhsirk musisz tylko zmienić to dla swojego konta użytkownika.

Podaj hasło jako

. Jeśli nie poprosi o hasło, ścieżka klucza jest nieprawidłowa.

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

Tutaj wpisz opis obrazka

 146
Author: AnhSirk Dasarp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-21 10:34:58

Odpowiedni klucz można uzyskać z samej aplikacji, dodając następujący kod, aby uzyskać odpowiedni hash klucza (w przypadku Facebook SDK 3.0 działa to)

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.paczka.mypackage z nazwą pakietu

 14
Author: tigerden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-12 13:25:05

I. Utwórz debugowanie hash klucza dla facebook

Dodaj kod, aby wydrukować hash klucza dla facebook

    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 Key hash release for facebook

  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. (prasa) cd C:\Program Files\Java \ jdk1.6. 0_45 \ bin. Uwaga: C:\Program Files\Java\jdk1.6. 0_45 \ bin: is path do folderu jdk w 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: is path to your keystorerelease

  7. Enter keystore password: jest to hasło, gdy rejestrujesz keystorerelease.

    Wtedy będziesz miał klucz hash: jDehABCDIQEDWAYz5Ow4sjsxLSw=

  8. Zaloguj się facebook. Dostęp do zarządzania aplikacjami. Wklej hash klucza do aplikacji na developers.facebook.com

 12
Author: Anh Duy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-07 19:07:42

NAJPROSTSZE ROZWIĄZANIE TEGO PROBLEMU:

Mam ten Problem od dwóch miesięcy. Mój kluczowy hash podniósł się do 9. Dzisiaj w końcu znalazłem proste rozwiązanie:

Krok 1:

Facebook Facebook sdk zainstaluj na swoim telefonie ze strony Facebook developer page. Nie instaluj normalnej aplikacji facebook. Upewnij się, że możesz zalogować się na facebook. Następnie wyloguj się.

Krok 2:

Eksportuj aplikację z finałem uwolnij klucz jako apk, tak jak przy przesyłaniu go do playstore.

Krok 3:

Umieść plik Apk w telefonie za pomocą kabla usb lub pamięci usb.

Krok 4:

Zainstaluj aplikację, używając menedżera plików: przykład

Krok 5:

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

Krok 6:

Zapisz klucz.

Krok 7:

Włóż go do konsoli programisty facebook i zapisz. Teraz jesteś skończony. Każdy, kto pobrzeży Twoją aplikację, opublikowaną z wcześniej używanym keystore, może zalogować się na facebook.

Enjoy

 8
Author: Sakramento,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-07 18:02:59

Jeśli zwalniasz, użyj klucza używanego do eksportowania aplikacji, a nie debugowania.keystore.

 7
Author: trgraglia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-20 07:39:54

Hasło certyfikatu debugowania to android, a nie Android

 6
Author: Fernando Gallego,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-12 17:41:23

Nareszcie :)

Oto moja historia:

  1. Dodaj ten kod do 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ń nazwę projektu na nazwę pakietu!

  3. podpisz aplikację (Narzędzia Android->Eksportuj podpisaną aplikację)
  4. w głównej aktywności, w której wklejasz kod z opcji 2, w układzie Utwórz TextView z id textstring
  5. odkomentuj dwie linie, aby Twój kod znakowy był ustawiony na TextView 6 Wuolia, masz swój HASH , zainstaluj aplikację na swoim telefonie!!! i sprawdź swój klucz haszujący!
  6. Teraz , gdy jest widoczny, przejdź do utworzonej aplikacji facebook i dodaj ją do [Key Hashes]
  7. zwróć uwagę, że Nazwa pakietu powinna być taka sama jak na facebook [Nazwa pakietu] pod [Key Hashes]
  8. miłego dnia:)
 6
Author: Vasilij,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-30 03:34:58

One line solution to generate for facebook

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
 5
Author: Anudeep Samaiya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 13:33:15

Aby wygenerować release key hash musisz wykonać kilka prostych kroków.

1) Download Openssl

2) Utwórz folder openssl na dysku C

3) Rozpakuj pliki Zip do folderu OpenSSL utworzonego na dysku C.

4) skopiuj plik debugowania.keystore od .folder android w moim przypadku (C:\Users\SYSTEM.android) i wklej do folderu JDK bin w moim przypadku (C:\Program Files\Java \ jdk1.6. 0_05\bin)

5) Otwórz wiersz polecenia i podaj ścieżkę folderu bin JDK 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:\Projects\MyAppFolder\keystore.txt | C:\openssl\bin\openssl sha1-binary | C:\openssl\bin\openssl base64 ex-keytool-exportcert-alias (your Sing APK alias name enter here like my sign APK alian name is abcd) - keystore "signed APK generated keystore apth enter here" / "OpenSSL bin folder ścieżka enter here" sha1-bin / " OpenSSL bin bin ścieżka do folderu wpisz tutaj " base64

7) Teraz musisz wprowadzić hasło, Password = (Tutaj wpisz hasło logowania)

8) masz keystore, które są używane do wydania klucza aplikacji

 4
Author: Vijay Rajput,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-07 17:33:18

Mimo, że ten wątek jest stary, to jednak chciałbym podzielić się moim doświadczeniem (ostatnio zacząłem współpracę z facebook), które wydaje mi się proste:

  1. Pobierz openssl z poniższego linku: 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 facebook, użyj następującego polecenia z linii 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ę dla openssl.exe (w tym przykładzie jest "C:\openssl\bin\openssl.exe") z własną ścieżką instalacji.

  1. wyświetli monit o hasło, np.

Wpisz hasło keystore: android

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

To jest to! Otrzymasz klucz o długości 28 znaków. Zdrowie!

Użyj tej samej procedury, aby uzyskać klucz zwalniający. Wystarczy zastąpić poniższe polecenie i użyć aliasu klucza release.

Keytool-exportcert-alias YOUR_RELEASE_KEY_ALIAS-keystore YOUR_RELEASE_KEY_PATH | " ścieżka dla openssl.exe " sha1-binary / OpenSSL base64

 3
Author: Mahbubul Syeed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-25 18:28:48

Świetny wpis na blogu w temacie

Wydobywanie klucza Hash z .klucz p12

  1. Otwórz Terminal lub wiersz poleceń i przejdź do miejsca, w którym twój .klucz p12 jest.
  2. Wpisz: "keytool - V-list-keystore.p12-magazyn pkcs12 " gdzie mycert.p12 jest nazwą Twojego pliku .klucz p12.
  3. Wprowadź hasło keystore (to, którego użyłeś podczas eksportowania .klucz p12). 4 . Skopiuj bajty podpisu odcisków palców sha1.
  4. bajty w sygnaturze odcisków palców sha1 są potrzebne do zapisu "sha1.bin " plik. Do wklejenia skopiowanych bajtów można użyć edytora szesnastkowego. Następnie zapisz plik jako " sha1.bin".
  5. Otwórz terminal ponownie i wpisz: "OpenSSL base64 - in sha1.bin-out base64.txt".
  6. wynik "base64.txt " będzie zawierać klucz Hash, który jest potrzebny do Facebook.

Świetny i prosty edytor szesnastkowy dla mac: HexFiend

OpenSSL powinien być preinstalowany na Macu, a oto link Dla Windows wersja.

Link

 2
Author: Thyselius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-07 17:53:30

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

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
 2
Author: Sam Stern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-10 20:16:45

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

A link do pobrania The Jar

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

 1
Author: TacB0sS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-07 17:53:46

Cześć wszystkim jej Moja historia jak się podpisuje ma klucz do facebook

Po pierwsze wystarczy skopiować te 2 metody w 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łanie funcation getAppKeyHash () z metody oncreate jeśli chcesz podpisany hash następnie make signed build install signed build and run otrzymasz klucz hash w oknie dialogowym, a następnie po prostu zanotuj go i zaktualizuj na Facebook dev account i skomentuj tę funkcję i zrób kolejny podpisany APK * * {]}

 1
Author: Prashant Maheshwari Andro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-05 12:22:45

Jeśli Twoje hasło = android jest złe, a następnie umieścić swoje hasło do komputera, że to działa dla mnie.

I do generowania keyHash spróbuj tego linku Proszę.

 1
Author: Arpit Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-16 04:25:13

Wygeneruj klucz Hashowy 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
 1
Author: Ashutosh Srivastava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-11 11:15:09

Działa mi tylko hasło android. Dlaczego nie jest to wymienione w żadnych przewodników tam?

 0
Author: Remi Sture,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-13 09:13:47

Użyj tego w kotlinie dla Print key hash w logu

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

    }
 0
Author: Prashant Jajal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 10:41:08