Bagaimana cara membuat Android Facebook Key Hash?


182

Saya tidak mengerti proses ini sama sekali. Saya telah dapat menavigasi ke folder yang berisi keytool di Java SDK. Meskipun saya terus mendapatkan kesalahan, openssl tidak dikenali sebagai perintah internal atau eksternal. Masalahnya adalah bahkan jika saya bisa membuatnya bekerja, apa yang akan saya lakukan dan dengan apa setelahnya?


jika Anda menggunakan facebook SDK terbaru dan jika Anda memasukkan api facebook Anda dengan sempurna maka ketika login Anda mengklik login di facebook maka di logcat Anda kunci hash dicetak ..
Mehul Ranpara

untuk menghasilkan hash kunci Anda di komputer lokal Anda, jalankan utilitas keytool Java (yang seharusnya ada di jalur konsol Anda) terhadap keystore debug Android. Ini, secara default, di direktori home andand Anda). Pada OS X, jalankan: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64 Pada Windows, gunakan: - keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% \. android \ debug.keystore | openssl sha1 -binary | openssl base64
Rakesh

Mengapa ada orang yang ingin membuat kunci debug?
Anders Lindén

Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

Jawaban:


242

Inilah yang perlu Anda lakukan -

Unduh openSSl dari Code Extract it. buat folder- OpenSSL di C: / dan salin kode yang diekstrak di sini.

mendeteksi jalur file debug.keystore. Jika Anda tidak menemukan, maka lakukan pencarian di C: / dan gunakan Path pada perintah di langkah berikutnya.

mendeteksi jalur keytool.exe Anda dan pergi ke dir / in command prompt dan jalankan perintah ini dalam 1 baris-

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

itu akan meminta kata sandi, taruh android itu saja. kamu akan mendapatkan kunci-hash


ketika meminta kata sandi, bisakah saya memasukkan apa pun yang saya inginkan?
Somk

5
@ Max, kata sandi default adalah android.
jamapag

2
hash kunci tidak cocok dengan hash kunci tersimpan Android, tidak berfungsi
Boldijar Paul

1
Pertama buat keystore dengan pergi ke Build -> Build Apk dari studio Anda. berikan nama dan kata sandi dll. Simpan sebagai file .jks di folder yang mudah diakses. Sekarang salin jalur dan hasilkan kunci dengan mengganti jalur itu di jawaban yang disebutkan di atas.
buggydroid

1
Ini menunjukkan kepada saya kesalahan: "... Ekspresi hanya diperbolehkan sebagai elemen pertama dari sebuah pipa. Pada baris: 1 char: 184 ... Token 'sha1' yang tak terduga dalam ekspresi atau pernyataan. ... Ekspresi hanya diperbolehkan sebagai elemen pertama dari pipeline ... ... 'Base64' token yang tak terduga dalam ekspresi atau pernyataan. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: EkspresiMustBeFirstInPipeline "
pengembang android

175

Untuk Linux dan Mac

Terminal Terbuka:

Untuk Pembuatan Debug

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

Anda akan menemukan debug.keystore di folder ".android". Salin dan tempel ke desktop dan jalankan perintah di atas.

Untuk rilis Build

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

CATATAN: Pastikan bahwa dalam kedua kasus itu meminta kata sandi. Jika tidak meminta kata sandi, itu berarti ada sesuatu yang salah dalam perintah. Kata sandi untuk debug.keystore adalah " android " dan untuk rilis Anda harus memasukkan kata sandi yang Anda atur saat membuat keystore .


3
Agar jelas, kata sandi kosong. Tekan saja <enter> saat diminta.
Tom Redman

Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

1
Catatan ini: "CATATAN: Pastikan bahwa dalam kedua kasus itu meminta kata sandi. Jika tidak meminta kata sandi, itu berarti ada sesuatu yang salah dalam perintah." sangat penting untuk memecahkan masalah
Bleno Silva

terima kasih telah menyelamatkan hidupku. im tyiping kata sandi mac saya untuk kata sandi keystore sepanjang waktu dan saya menyadari itu salah
Lucky Angelo

1
Bahkan meminta kata sandi tidak berarti semuanya baik-baik saja (kata sandi salah, alias kunci salah). Jalankan keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>sendiri pada awalnya, untuk melihat apakah semuanya baik-baik saja. Ditambah lagi, ketika dipipihkan, keytool berada dalam mode non-interaktif dan menunjukkan kata sandi dalam teks biasa ketika Anda memasukkannya. Jadi sebaiknya Anda menulis skrip kecil yang menjalankan perintah secara terpisah.
Pierre

98

Silakan coba ini:

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

Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

ini adalah cara untuk pergi
Tintinabulator Zea

1
Ini berfungsi, jika Anda memanggil pContext.getPackageInfo. Atau hapus saja dari suatu fungsi dan panggil di onCreate dari aktivitas apa pun.
Dpedrinha

1
Ini sekarang tampaknya getPackageManager (). GetPackageInfo ([nama_paket Anda], PackageManager.GET_SIGNATURES)
Hingga

@Apurva Anda dapat meletakkannya di Android SharedPreferences jika Anda menggunakannya nanti.
Maddy

49

OpenSSL: Anda harus menginstalnya jika tidak diinstal sebelumnya dengan sistem operasi Anda (mis. Windows tidak memilikinya diinstal sebelumnya) . Cara memasang itu tergantung pada OS Anda (untuk Windows periksa tautan yang disediakan oleh coder_For_Life22).

Cara termudah tanpa mengotak-atik adalah menyalin binary openssl.exe ke path keytool Anda jika Anda menggunakan Windows. Jika Anda tidak ingin melakukan itu, Anda harus menambahkannya ke PATHvariabel lingkungan Anda . Kemudian jalankan perintah yang disediakan dalam dokumen.

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

Perhatikan bahwa argumen setelah -keystoremenunjuk ke debug keystore Anda. Lokasi ini juga tergantung pada sistem operasi Anda. Harus di salah satu lokasi berikut:

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

Jika Anda melakukan segalanya dengan benar, Anda harus dimintai kata sandi. Itu adalahandroid untuk sertifikat debug. Jika kata sandi benar, konsol akan mencetak hash (karakter dan angka yang agak acak).

Ambil itu dan salin ke android key hashbidang di dalam preferensi aplikasi Anda di facebook. Untuk menuju ke sana, pergi ke developers.facebook.com/apps , pilih aplikasi Anda, pergi ke Edit settingsdan gulir ke bawah. Setelah itu, tunggu beberapa menit hingga perubahan mulai berlaku.


Saya menjalankan ini dalam cmd dan menampilkan daftar karakter yang sangat panjang yang tampak seperti hash yang diakhiri dengan tanda = lalu tidak ada $ keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ .android \ debug.keystore" | "C: \ OpenSSL \ bin \ openssl" sha1 -binary | "C: \ OpenSSL \ bin \ openssl" base64
Somk

Kedengarannya benar. Baru mengujinya di mesin saya, sudah lama 28 karakter bagi saya, hanya untuk memberi Anda ide. Sekarang salin saja dan Anda baik-baik saja. :)

saya tidak diminta untuk menggunakan android yang kasar sekalipun. Maaf saya lambat?
Somk

Sejujurnya, saya tidak yakin mengapa Anda tidak diminta untuk itu. Tapi itu kedengarannya benar bagi saya. Maksud saya, jika Anda melakukan kesalahan, seharusnya ada pesan kesalahan. Cukup salin dan lihat apakah itu berfungsi. Anda dapat menguji beberapa permintaan grafik dengan Graph API Explorer . Pilih aplikasi Anda di atas dan lihat apakah Anda mendapatkan hasil yang valid. Itu harus meludah kesalahan jika ada sesuatu yang salah. Sunting: Dan tidak ada yang salah dengan beeing lambat. Kami tidak terburu-buru. :)

24

untuk menghasilkan hash kunci Anda di komputer lokal Anda, jalankan utilitas keytool Java (yang seharusnya ada di jalur konsol Anda) terhadap keystore debug Android. Ini, secara default, di direktori home andand Anda). Pada OS X, jalankan:

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

Di Windows, gunakan: -

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

Semoga ini bisa membantu Anda

Situs facebook pengembang ref


Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

19

Anda cukup menggunakan satu baris javascript di konsol browser untuk mengonversi kunci peta hex menjadi base64. Buka konsol di browser terbaru (F12 di windows) dan rekatkan kode dan ganti SHA-1, SHA-256peta hex yang disediakan Google play di bawah 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
Anda seorang penyelamat, Terima kasih
Yusuf Adeyemo

SHA-1 adalah satu-satunya.
Travo

19

Berikut ini rincian lengkap (Untuk Windows)

1. Unduh OpenSSl baik ke-3 atau ke-4 (dengan e akan bekerja lebih baik) berdasarkan sistem Anda 32bit atau 64bit.

2. Ekstrak zip yang diunduh di dalam direktori C.

3. Buka folder yang diekstraksi hingga ke bin dan salin path, itu harus seperti C:\openssl-0.9.8k_X64\bin\openssl (tambahkan \ openssl di akhir)

4. (Dapatkan path ke folder bin Jdk, jika Anda tahu caranya, abaikan ini).

Buka android studio ~ file ~ Struktur Proyek (ctrl + alt + shift + s), pilih lokasi SDK di panel sebelah kiri, salin lokasi JDK dan tambahkan / bin ke sana

Jadi Lokasi JDK akhir akan seperti C:\Program Files\Android\Android Studio\jre\bin

kami mengikuti metode ini untuk mendapatkan lokasi Jdk karena Anda mungkin menggunakan jdk tertanam seperti saya

masukkan deskripsi gambar di sini

sekarang Anda memiliki lokasi OpenSSl & lokasi JDK

5. sekarang kita perlu men-debug lokasi keystore, untuk itu buka C ~> Users ~> YourUserName ~> .android harus ada nama file debug.keystore, sekarang salin lokasi path, seharusnya ada beberapa hal seperti

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

6. sekarang buka command prompt dan ketik perintah

cd YourJDKLocationFromStep4  

dalam kasus saya

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

7. sekarang buat perintah berikut

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

dalam kasus saya perintah akan terlihat seperti

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

sekarang masukkan perintah ini di command prompt, jika Anda pernah melakukan hal yang benar, Anda akan diminta kata sandi (kata sandi adalah android)

Enter keystore password:  android

itu saja, Anda akan diberi Key Hash, cukup salin dan gunakan

Untuk KeyHash yang Ditandatangani, buat perintah berikut

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

masukkan kata sandi keystore Anda, Jika Anda memasukkan kata sandi yang salah itu akan memberikan KeyHash yang salah

CATATAN

Jika karena alasan tertentu jika memberikan kesalahan pada beberapa lintasan maka bungkus lintasan itu dengan tanda kutip ganda. Juga shell daya Windows tidak berfungsi dengan baik untuk saya, saya menggunakan git bash (atau menggunakan command prompt).

contoh

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
Terima kasih banyak, ini adalah panduan yang sangat rinci untuk pemula!
Pablo Quemé

@TamimProduction coba prosedur yang sama di atas dengan versi k openssl dan lihat code.google.com/archive/p/openssl-for-windows/downloads
Manohar Reddy

@TimimProduksi jika Anda memasukkan kata sandi yang salah itu akan mengembalikan keyhash yang salah. Anda juga membangun apk lagi setelah menghapus keystore?
Manohar Reddy

@TamimProduction mengunduh dan menginstal aplikasi Facebook, masuk ke aplikasi Facebook. buka aplikasi Anda dan lakukan login facebook. Ini akan memberi Anda hash utama dalam aplikasi facebook, periksa apakah itu sama dengan milik Anda
Manohar Reddy


16

Ada solusi singkat juga. Jalankan saja ini di aplikasi Anda:

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

Yang lebih panjang yang tidak membutuhkan FB SDK (berdasarkan solusi di sini ):

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

Hasilnya harus diakhiri dengan "=".


1
Saya perhatikan bahwa hash kunci saya memiliki '_' di dalamnya yang tidak diizinkan oleh FB. Untuk menggunakan hash saya harus mengubahnya ke '/'.
Abdelalim Hassouna

Fungsi Facebook mengembalikan kunci saya karena -AAAAAAAA_AAAAAA-AAAAAAAAAAtidak diizinkan oleh Facebook, printHashKey mengembalikan kunci dalam format yang valid+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov

@GrafOrlov Aneh sekali. Mungkin mereka memiliki bug pada beberapa versi FB SDK baru. Anda harus melaporkannya kepada mereka.
pengembang android

9

Untuk Windows:

  1. buka command prompt dan rekatkan perintah di bawah ini

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

  1. Masukkan kata sandi: android -> Tekan Enter

  2. Salin Kunci Hash yang Dihasilkan -> Masuk Facebook dengan akun pengembang Anda

  3. Buka Aplikasi Facebook Anda -> Pengaturan -> Tempel kunci hash di opsi "hash kunci" -> simpan perubahan.

  4. Sekarang Uji aplikasi android Anda dengan Masuk Facebook / Bagikan dll.


Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

Hai, saya dapat membuat kunci hash melalui kode dalam aktivitas utama saya tetapi kunci hash yang dihasilkan hanya berfungsi pada satu perangkat. Ketika saya menginstal apk yang sama di perangkat lain dan menjalankannya itu menunjukkan kesalahan kunci hash yang tidak valid. Apakah ada hal yang saya lewatkan.
Deepak

8

Sejak API 26, Anda dapat membuat HASH KEYS Anda menggunakan kode berikut di KOTLIN tanpa perlu Facebook SDK.

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

}

masukkan deskripsi gambar di sini


Maksud saya, saya tempatkan kode Anda class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
asdfasdf

6

Begitulah cara saya mendapatkan:

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

Jadi ketika Anda mencoba masuk tanpa kunci, pengecualian akan terjadi. Facebook memasukkan kunci KANAN ke dalam pengecualian ini. Yang perlu Anda lakukan hanyalah menyalinnya.


Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

6

Jika Anda telah mengunggah aplikasi ke Play store, Anda dapat menghasilkan Hash Key sebagai berikut:

1) Buka Manajemen Rilis di sini

2) Pilih Manajemen Rilis -> Penandatanganan Aplikasi

3) Anda dapat melihat kunci SHA1 dalam format hex, sertifikat penandatanganan aplikasi.


4) Salin SHA1 dalam format hex dan mengubahnya menjadi format base64, Anda dapat menggunakan tautan ini melakukannya tanpa SHA1: bagian dari hex.


5) Buka konsol pengembang Facebook dan tambahkan kunci (setelah dikonversi ke basis 64) di pengaturan -> dasar -> hash kunci.



3

Unduh open ssl :

Kemudian tambahkan openssl \ bin ke variabel sistem path:

Komputer saya -> properti -> Konfigurasi lanjutan -> Lanjutan -> Variabel sistem -> di bawah variabel sistem temukan jalur, dan tambahkan ini ke ujungnya:; yourFullOpenSSLDir \ bin

Sekarang buka baris perintah pada folder jdk \ bin Anda C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (pada windows tahan shift dan klik kanan -> buka command line di sini) dan gunakan:

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

Dan salin nomor 28 panjang yang dihasilkan setelah memberikan kata sandi.


Saya tidak melihat bahwa jawaban asli sudah memiliki tautan openssl. Tetapi ini masih berguna untuk variabel sistem.
sagits

Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

Tentu, apakah Anda yakin telah menghasilkan angka panjang 28? Jika demikian, sekarang Anda harus pergi ke situs pengembang facebook (cari di google) dan membuat aplikasi baru, di bawah pengaturan, Anda dapat menambahkan aplikasi Android baru, di sana Anda menempelkan keyhash dan nama aktivitas Anda (di mana kode login berada ). Ada tutorial tentang hal itu di facebook juga
sagits

Terima kasih atas balasan cepatnya, saya akan segera mencobanya
Apurva

3

Jalankan ini di aplikasi Anda:

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

Atau ini:

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

Dan kemudian lihat log.

Hasilnya harus diakhiri dengan "=".

Solusi didasarkan di sini dan di sini .


3

CARA MUDAH -> Jangan instal openssl -> GUNAKAN GIT BASH!

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

Kata sandi default adalah "android"

Sebagian besar dari kita memasang Git Bash jadi ini adalah cara favorit saya.


3

ini akan membantu lebah baru juga.

hanya menambahkan lebih detail ke jawaban @ coder_For_Life22.

jika jawaban ini membantu Anda jangan lupa untuk memperbaiki. itu memotivasi kita.

untuk ini, Anda harus sudah mengetahui jalur file keystore dan kata sandi aplikasi

untuk contoh ini mempertimbangkan kunci disimpan di "c: \ keystorekey \ new.jks"

1. buka halaman ini https://code.google.com/archive / p / openssl-untuk-windows / unduhan

2. unduh file zip 32 atau 64 bit sesuai OS Windows Anda.

3. ekstrak file yang diunduh di mana saja Anda inginkan dan ingat jalannya.

4. untuk contoh ini kami menganggap Anda telah mengekstrak folder di folder unduhan.

jadi alamat file akan menjadi "C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe";

5. sekarang pada keyboard tekan tombol windows + r.

6. ini akan membuka kotak jalankan.

7. ketik cmd dan tekan Ctrl + Shift + Enter .

8. ini akan membuka command prompt sebagai administrator.

9. di sini arahkan ke folder bin java:

jika Anda menggunakan jre yang disediakan oleh Android Studio Anda akan menemukan path sebagai berikut:
a. buka studio android.
b. file-> struktur proyek
c. di panel kiri, klik 'Lokasi SDK'
d. di panel kanan, di bawah 'Lokasi JDK' adalah jalur jre Anda.
e. tambahkan "\ bin" di akhir jalur ini karena file "keytool.exe", yang kita butuhkan, ada di dalam folder ini. "C: \ Program Files \ Java \ jre-10.0.2 \ bin"
untuk contoh ini saya pertimbangkan,


"C: \ Program Files (x86) \ Java \ jre-10.0.2 \ bin"
10. sekarang dengan path di atas jalankan perintah sebagai berikut:

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. Anda akan dimintai kata sandi, berikan kata sandi yang telah Anda berikan saat membuat kunci keystore.

    !!!!!! ini akan memberi Anda kuncinya

kesalahan: jika Anda mendapatkan:
---
'keytool' tidak dikenali sebagai perintah internal atau eksternal
---
ini berarti java diinstal di tempat lain.


3

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

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

Anda mendapat nilai SHA1 klik tautan ini Anda mengkonversi nilai SHA1 Anda ke HASH KEY

im 100% yakin tautan ini akan membantu Anda


3

Jalan mudah

Dengan menggunakan situs web ini Anda bisa mendapatkan Hash Key dengan Mengkonversi kunci SHA1 ke Hash Key untuk Facebook.


2

Anda dapat memperoleh semua sidik jari dari https://console.developers.google.com/projectselector/apis/credentials
Dan gunakan kode Kotlin ini untuk mengonversinya menjadi keyhash:

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 Januari 2017

Facebook SDK

Diubah

Facebook SDK sekarang secara otomatis diinisialisasi ketika aplikasi dimulai. Dalam sebagian besar kasus, panggilan manual ke FacebookSDK.sdkInitialize () tidak lagi diperlukan. Lihat panduan peningkatan untuk detail lebih lanjut.

Untuk Debug

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

Jalankan saja kode ini di OnCreateView Atau OnStart Actvity Anda dan Fungsi Ini Mengembalikan Anda Pengembangan Key Hash .

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

Saya mengalami masalah yang sama persis, saya tidak diminta untuk memasukkan kata sandi, dan sepertinya saya memiliki jalur yang salah untuk file keystore.

Bahkan, jika keytool tidak menemukan keystore yang telah Anda atur, itu akan membuat dan memberikan Anda kunci yang salah karena tidak menggunakan yang benar.

Aturan umum adalah bahwa jika Anda tidak diminta kata sandi maka Anda memiliki kunci yang salah yang dihasilkan.


Saya telah membuat hash kunci tetapi tidak tahu di mana harus meletakkan kunci itu, maukah Anda membimbing saya? Saya menjalankan studio android di Ubuntu.
Apurva

0

Anda dapat menggunakan apk ini

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 Ini Mandarin: D
armnotstrong


0

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

2 Perubahan pada perintah di atas ini 1.Deepak === Ganti dengan Sistem Anda USERNAME 2.C: \ Users \ Deepak \ ssl === ganti jalur SSL Terbuka Anda

jalankan perintah ini dan dapatkan output seperti ini

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 Masukkan kata sandi keystore: ****** ga0RGNY ****************** =


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.