Openssl tidak dikenali sebagai perintah internal atau eksternal

177

Saya ingin membuat tanda tangan aplikasi untuk aplikasi saya yang nantinya akan diintegrasikan dengan Facebook. Di salah satu tutorial Facebook, saya menemukan perintah ini:

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

Dalam tutorial, dikatakan bahwa dengan menjalankan cmd ini, proses saya menghasilkan tanda tangan akan dimulai.

Namun, perintah ini memberikan kesalahan:

openssl is not recognized as an internal or external command

Bagaimana saya bisa menyingkirkan ini?

Khurram
sumber
10
Unduh dan instal OpenSSL .
Michael Petrotta
Saya mengunduh 3 dari mereka tidak ada yang kompatibel: /
Khurram
1
Apa artinya itu, khurram?
Michael Petrotta
1
Saya mengunduh banyak versi openssl dari tautan yang Anda berikan tetapi masing-masing memberikan kesalahan sebelum instalasi yang tidak kompatibel dengan windows 7- 64 bit. Bisakah Anda memberi tahu saya openssl yang tepat yang saya butuhkan
Khurram
1
Anda bisa mendapatkannya dari tautan yang saya pasang di ans saya di bawah ini ...
Usama Sarwar

Jawaban:

395

Nah di tempat openssl ... Anda harus meletakkan path ke folder openssl yang telah Anda unduh. Perintah aktual Anda akan terlihat seperti:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\Users\abc\openssl\bin\openssl.exe" sha1 -binary | "C:\Users\abc\openssl\bin\openssl.exe" base64

Ingat, path yang akan Anda masukkan akan menjadi path tempat Anda menginstal openssl ... semoga ini membantu .. :-)

Edit:

Anda dapat mengunduh openssl untuk windows 32 dan 64 bit dari masing-masing tautan di bawah ini:

OpenSSL untuk 64 Bit

OpenSSL untuk 32 Bit

Usama Sarwar
sumber
1
katanya c: \ openssl \ bin \ openssl tidak dikenali
Akhil Jain
7
cara yang lebih baik adalah dengan mengeksekusi perintah asli dari direktori openssl / bin. Yaitu jika direktori openssl saya ada di C: dev, saya akan pindah ke C: \ dev \ openssl \ bin, dan jalankan perintah apa adanya
AnhSirk Dasarp
2
Anda harus menunjukkan file openssl.exe: exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ op enssl.exe" base64
phanhongphucit
@LatentBoy, kamu benar. caramu bekerja untukku. Terima kasih banyak.
surhidamatya
terima kasih ... setelah mencoba sekitar satu jam, jawaban Anda berhasil untuk saya
Krupal Shah
23

Gunakan seluruh jalur, seperti ini:

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64

Ini berhasil untuk saya.

Kaloyan Drenski
sumber
18

Silakan ikuti langkah ini, saya harap kunci Anda berfungsi dengan baik:

  1. Langkah 1 Anda membutuhkan OpenSSL. Anda dapat mengunduh biner dari proyek openssl-for-windows di Google Code.

  2. Langkah 2 Buka zip folder, lalu salin path ke binfolder ke clipboard.

    Misalnya, jika file membuka ritsleting ke lokasi C:\Users\gaurav\openssl-0.9.8k_WIN32, lalu salin path C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Langkah 3 Tambahkan jalur ke jalur lingkungan sistem Anda. Setelah PATHvariabel lingkungan Anda diatur, buka cmd dan ketik perintah ini:

    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64

    Ketikkan kata sandi Anda saat diminta. Jika perintah itu bekerja, maka Anda akan ditampilkan kunci.

GAURAV KUMAR GUPTA
sumber
FYI: Biasanya kata sandi debug.keystore hanya "android".
Seseorang di suatu tempat
11

Ini berhasil untuk saya.

"C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe" -exportcert -alias sociallisting -keystore "D: \ keystore \ SocialListing" | "C: \ cygwin \ bin \ openssl.exe" sha1 -binary | "C: \ cygwin \ bin \ openssl.exe" base64

Hati-hati dengan jalur di bawah ini:

  • "C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialListing" atau bisa juga seperti ini " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe" atau dapat seperti ini C: \ Users \ openssl \ bin \ openssl.exe

Jika perintah berhasil bekerja, maka Anda akan melihat perintah ini:

Masukkan kata sandi kunci: ketik kata sandi Anda

Encryptedhashkey **

Siddiq Abu Bakkar
sumber
10

jawabannya sudah terlambat tetapi ini akan membantu orang-orang malas seperti saya .. tambahkan kode ini ke kelas Aplikasi Anda, tidak perlu mengunduh openssl dan tidak perlu mengatur path .. hanya perlu menyalin kode ini .. dan keyHash akan dihasilkan dalam log.

import com.facebook.FacebookSdk;
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        printKeyHash();
    }

    private void printKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    getPackageName(), 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 (PackageManager.NameNotFoundException e) {
            Log.e("jk", "Exception(NameNotFoundException) : " + e);
        } catch (NoSuchAlgorithmException e) {
            Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e);
        }
    }
}

dan jangan lupa tambahkan kelas MyApplication dalam manifes:

<application
        android:name=".MyApplication"
</application>
Sagar Chavada
sumber
apakah ini berfungsi untuk versi rilis facebook? kalau tidak bagaimana?
MetaSnarf
Kode ini digunakan untuk menghasilkan keyhash. Dan kunci yang sama untuk rilis juga. Untuk versi rilis, pastikan Anda mengatur akses publik di konsol pengembang facebook.
Sagar Chavada
Mendapatkan kesalahan "Konteks dan applicationId harus non-null", ketika digunakan kode di atas. @SagarChavada
Yesha Shah
6

Navigasi pertama ke folder Java / jre / bin Anda di cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin

Kemudian gunakan: [ubah jalur debug.keystore ke lokasi yang benar di sistem Anda] instal openssl (untuk windows 32 atau 64 sesuai kebutuhan Anda di c: \ openssl)

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.exe" sha1 -binary | "c:\openssl\bin\openssl.exe" base64

Jadi seluruh perintah berjalan seperti ini: [meminta untuk memasukkan kata sandi keystore saat eksekusi]

c:\Program Files (x86)\Java\jre7\bin>keytool -exportcert -alias androiddebugkey
-keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.ex
e" sha1 -binary | "c:\openssl\bin\openssl.exe" base64
Enter keystore password:
Vibhor Kashyap
sumber
5
Steps to create Hash Key. 
1: Download openssl from Openssl for Windows . I downloaded the Win64 version 
2:Unzip and copy all the files in the bin folder including openssl.exe(All file of bin folder) 
3:Goto to the folder where you installed JDK for me its C:\Program Files\Java\jdk1.8.0_05\bin 
4:Paste all the files you copied from Openssls bin folder to the Jdk folder. 

lalu buka C: \ Program Files \ Java \ jdk1.8.0_05 \ bin dan tekan tombol shift dan klik kanan dan buka cmd

C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path 

itu untuk Sha1 melewati
keytool -exportcert -alias ini androiddebugkey -keystore "C: \ User \ ABC \ .android.keystore" | openssl sha1 -binary | openssl base64
// dan ABC adalah nama sistem menempatkan nama sistem sendiri

sandhu
sumber
binFolder apa yang Anda maksud pada langkah kedua?
Ionut Necula
2

Saya menggunakan kode ini:

Ini berhasil untuk saya.

"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias sociallisting -
keystore "D:\keystore\SocialListing" | "C:\cygwin\bin\openssl.exe" sha1 -binary | 
"C:\cygwin\bin\openssl.exe" base64
Nguyễn Kim
sumber
2

gunakan ini bekerja untuk saya. tolong ubah Path Anda

C: \ Program Files \ Java \ jre7 \ bin keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Ace.android \ debug.keystore" | "C: \ openssl \ bin

\ openssl.exe "sha1 -binary |" C: \ openssl \ bin \ openssl.exe "base64

Azahar
sumber
harus mengunduh openssl dari sini code.google.com/p/openssl-for-windows/downloads/… dan salin folder bin dan tempel ke C: \ openssl \
Azahar
1

Unduhan dan Unzip

Anda dapat mengunduh openssl untuk windows 32 dan 64 bit dari masing-masing tautan di bawah ini:

https://code.google.com/archive/p/openssl-for-windows/downloads

OpenSSL untuk 64 Bit OpenSSL untuk 32 Bit

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" sha1 -binary | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" base64

Penting mengubah jalur kami Di Sini serta menginstal open ssl di sistem Anda

Ini Bekerja Tidak Diragukan

C:\Users\keshav.gera>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" sha1 -binary | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" base64

Masukkan kata sandi keystore: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

================================================== ===========

menggunakan secara manual melalui Coding

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


private void PrintHashKey() {

        try {
            PackageInfo info = getPackageManager().getPackageInfo("**com.keshav.patanjalidemo  Your Package Name Here**", 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 (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }
Keshav Gera
sumber
0

pergi ke lintasan folder bin dalam cmd dan kemudian jalankan perintah berikut

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

Anda akan mendapatkan hash kunci Anda

DjP
sumber
0

untuk pengguna windows unduh ssl terbuka dari repositori kode google https://code.google.com/p/openssl-for-windows/downloads/list

Setelah unduhan, ekstrak konten ke folder lebih disukai di drive c: Anda.

Kemudian perbarui variabel lingkungan PATH Anda sehingga Anda dapat menggunakan .exe dari lokasi mana pun di baris perintah Anda.

[windows 8] Untuk memperbarui variabel lingkungan PATH Anda, klik komputer saya-> properties-> Pengaturan Sistem Lanjut.

Klik Tab Lanjut dan klik tombol 'Variabel Lingkungan' di bagian bawah dialog kemudian pilih entri Jalur dari Bagian 'Variabel Sistem' dengan mengklik sunting.

Rekatkan path ke folder bin dari unduhan openssl yang diekstraksi dan klik ok.

Anda harus menutup dan membuka dan meminta prompt yang sebelumnya Anda luncurkan sehingga Anda dapat memuat pengaturan jalur yang diperbarui.

Sekarang jalankan perintah ini:

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

Anda harus melihat kunci pengembang.

Oladipo Olasemo
sumber
0

Ini bekerja untuk saya:

C:\Users\example>keytool -exportcert -alias androiddebugkey -keystore 
"C:\Users\example\.android" | "C:\openssl\bin\openssl.exe" sha1 -binary 
| "C:\openssl\bin\oenssl.exe" base64
Manish
sumber
-1

Tidak dijamin menghasilkan hashkey dengan metode openssl tunggal ini akan berfungsi. Jika tidak berhasil untuk saya. Tapi terima kasih telah memberi saya arahan untuk menyelesaikan masalah saya.

Solusi Terjamin: Anda harus memecah seluruh perintah dalam perintah terpisah dan harus menulis output dari setiap eksekusi dalam file.

Anda dapat mengambil bantuan dari tautan berikut:

http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

Nikmati :)

Nirav Shah
sumber