Openssl dahili veya harici komut olarak tanınmıyor


177

Uygulamam için daha sonra Facebook ile entegre olacak bir uygulama imzası oluşturmak istiyorum. Facebook öğreticilerinden birinde şu komutu buldum:

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

Eğitimde, bu cmd'yi çalıştırarak imza oluşturma sürecimin başlayacağını söylüyor.

Ancak, bu komut bir hata verir:

openssl is not recognized as an internal or external command

Bundan nasıl kurtulabilirim?


10
OpenSSL'i indirin ve yükleyin .
Michael Petrotta

3 tanesini
indirdim

1
Bu ne anlama geliyor, khurram?
Michael Petrotta

1
Ben u verdi bağlantıdan openssl birçok sürümünü indirilen ama her biri kurulumdan önce bir hata verir windows 7- 64 bit ile uyumlu değildir. Bana ihtiyacım olan tam openssl söyleyebilir misiniz
Khurram

1
bunu aşağıdaki
ans'ta

Yanıtlar:


395

Openssl'nin yerine ... aslında indirdiğiniz openssl klasörünüzün yolunu koymanız gerekir. Gerçek komutunuz şöyle görünmelidir:

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

Unutmayın, gireceğiniz yol openssl'yi kurduğunuz yol olacaktır ... umarım bu yardımcı olur .. :-)

Düzenle:

Windows 32 ve 64 bit için openssl'yi aşağıdaki ilgili bağlantılardan indirebilirsiniz:

64 Bit için OpenSSL

32 Bit İçin OpenSSL


1
diyor ki: c: \ openssl \ bin \ openssl tanınmadı
Akhil Jain

7
orijinal komutu openssl / bin dizininden çalıştırmak daha iyi bir yol olabilir. Yani eğer openssl dizinim C: dev'deyse, C: \ dev \ openssl \
bin'e gider

2
openssl.exe dosyasını işaret etmelisiniz: exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ op enssl.exe" base64
phanhongphucit

@LatentBoy evet haklısın. senin yolun benim için çalıştı. Çok teşekkürler.
surhidamatya

teşekkürler ... yaklaşık bir saat denedikten sonra cevabınız benim için çalıştı
Krupal Shah

23

Tüm yolu şu şekilde kullanın:

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

Benim için çalıştı.


18

Lütfen şu adımı izleyin, umarım anahtarınız düzgün çalışır:

  1. Adım 1 OpenSSL'ye ihtiyacınız olacak. İkili dosyayı Google Code'daki windows için openssl projesinden indirebilirsiniz .

  2. Adım 2 Klasörü açın, ardından klasörün yolunu binpanoya kopyalayın.

    Örneğin, dosya konuma sıkıştırılmışsa C:\Users\gaurav\openssl-0.9.8k_WIN32, yolu kopyalayın C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Adım 3 Yolu sistem ortamınızın yoluna ekleyin. Senin sonra PATHortam değişkeni ayarlanır, cmd açın ve şu komutu yazın:

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

    İstendiğinde parolanızı yazın. Komut çalışırsa, size bir anahtar gösterilir.


Bilginize: Genellikle debug.keystore şifresi sadece "android" dir.
Birisi

11

Bu benim için başarıyla çalıştı.

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

Aşağıdaki yola dikkat edin:

  • "C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialListing" veya şöyle olabilir " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe" ya da bu gibi olabilir C: \ Users \ openssl \ bin \ openssl.exe

Komut başarıyla çalışırsa şu komutu görürsünüz:

Anahtar deposu şifresini girin: typeyourpassword

Encryptedhashkey **


10

geç cevap ama benim gibi tembel insanlar için yardımcı olacaktır .. Bu kodu Uygulama sınıfınıza ekleyin, openssl indirmeye gerek yoktur ve yolu ayarlamanıza gerek yoktur .. sadece ihtiyaç sadece bu kodu kopyalamak .. ve keyHash olacak günlükte oluşturulur.

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

ve manifest'te MyApplication sınıfını eklemeyi unutmayın:

<application
        android:name=".MyApplication"
</application>

bu facebook sürümü için çalışıyor mu? değilse nasıl?
MetaSnarf

Bu kod keyhash üretmek için kullanılır. Ve aynı anahtar serbest bırakma için de. Sürüm sürümü için, facebook geliştirici konsolunda genel erişimi ayarladığınızdan emin olun.
Sagar Chavada

Yukarıdaki kod kullanıldığında "bağlam ve applicationId boş olmamalı" hatası alıyorum. @SagarChavada
Yesha Shah

6

Önce cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin içindeki Java / jre / bin klasörünüze gidin

Sonra şunu kullanın: [debug.keystore yolunu sisteminizde doğru konuma değiştirin] install openssl (c: \ openssl'deki ihtiyaçlarınıza göre 32 veya 64 pencereleri için)

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

Böylece tüm komut şu şekilde olur: [yürütme sırasında anahtar deposu şifresini girmeniz istenir]

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:

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. 

sonra C: \ Program Files \ Java \ jdk1.8.0_05 \ bin gidin ve shift tuşuna basın ve sağ tıklayıp cmd'yi açın

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

Sha1 için bu keytool geçmiş
-exportcert -alias androiddebugkey -keystore "C: \ Kullanıcı \ ABC \ .android.keystore" | openssl sha1 -binary | openssl base64
// ve ABC sistem adı kendi sistem adını koy


binİkinci adımda hangi klasöre başvuruyorsunuz?
Ionut Necula

2

Bu kodu kullandım:

Bu benim için başarıyla çalıştı.

"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

2

bu benim için çalıştı kullanın. lütfen Yolunuzu değiştirin

C: \ Program Files \ Java \ jre7 \ bin keytool -exportcert -alias androiddebugkey -keystore "C: \ Kullanıcılar \ Ace.android \ debug.keystore" | "C: \ Openssl \ bin

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


openssl'i buradan indirmeniz gerekir code.google.com/p/openssl-for-windows/downloads/… ve bin klasörünü kopyalayıp C: \ openssl \
Azahar

1

İndirme ve Sıkıştırmayı Açma

Windows 32 ve 64 bit için openssl'yi aşağıdaki ilgili bağlantılardan indirebilirsiniz:

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

64 Bit için OpenSSL 32 Bit için OpenSSL

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

Önemli yolumuzu değiştirin Burada sisteminize açık ssl yükleyin

Hiç şüphe yok

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

Anahtar deposu şifresini girin: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

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

Kodlama Yoluyla Manuel Olarak Kullanma

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

    }


0

cmd'deki bin klasör yoluna gidin ve aşağıdaki komutu çalıştırın

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

anahtar karmasını alacaksın


0

Windows kullanıcıları için google'ın kod deposundan açık SSL'yi indirin https://code.google.com/p/openssl-for-windows/downloads/list

İndirme işleminden sonra, içeriği tercihen c: sürücünüzdeki bir klasöre çıkarın.

Ardından, PATH ortam değişkeninizi güncelleyin, böylece komut satırınızdaki herhangi bir konumdan .exe kullanabilirsiniz.

[windows 8] PATH ortam değişkeninizi güncellemek için, bilgisayarım-> özellikler-> Gelişmiş Sistem Ayarları'nı tıklayın.

Gelişmiş Sekmesine tıklayın ve iletişim kutusunun altındaki 'Ortam Değişkeni' düğmesine tıklayın ve ardından düzenle'yi tıklayarak 'Sistem Değişkenleri' Bölümünden Yol girişini seçin.

Çıkarılan openssl indirmesinin bin klasörünün yolunu yapıştırın ve Tamam'a tıklayın.

Güncellenmiş yol ayarlarını yükleyebilmeniz için daha önce başlatmış olabileceğiniz kapatma ve açma ve komut istemi gerekir.

Şimdi şu komutu çalıştırın:

keytool -exportcert -alias androiddebugkey -keystore "C: \ Kullanıcılar \ Oladipo.android \ debug.keystore" | openssl sha1 -binary | openssl base64

Geliştirici anahtarını görmelisiniz.


0

Bu benim için çalışıyor:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.