Openssl не розпізнається як внутрішня чи зовнішня команда


177

Я хочу створити підпис для свого додатка, який згодом буде інтегрований у Facebook. В одному з навчальних посібників у Facebook я знайшов цю команду:

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

У підручнику сказано, що запустивши цей cmd, запуститься мій процес генерації підпису.

Однак ця команда видає помилку:

openssl is not recognized as an internal or external command

Як я можу позбутися цього?


10
Завантажте та встановіть OpenSSL .
Майкл Петротта

Я завантажив 3 з них, ніхто не сумісний: /
Хуррам

1
Що це означає, хуррам?
Майкл Петротта

1
Я завантажив багато версій openssl із посилання u дав, але кожна з них дає помилку перед встановленням, що вона не сумісна з Windows 7- 64 біт. Чи можете ви сказати мені, що саме я вимагаю
Хуррам

1
ви можете отримати це за посиланням, яке я опублікував у своїх аншлях нижче ...
Усама Сарвар

Відповіді:


395

Ну на місці openssl ... ви повинні поставити фактично шлях до завантаженої вами папки openssl. Ваша фактична команда повинна виглядати так:

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

Пам'ятайте, шлях, який ви введете, буде шлях, де ви встановили openssl ... сподіваюся, це допоможе .. :-)

Редагувати:

ви можете завантажити openssl для Windows 32 та 64 біт за відповідними посиланнями нижче:

OpenSSL на 64 біти

OpenSSL на 32 біти


1
там написано, що c: \ openssl \ bin \ openssl не
впізнано

7
кращим способом було б виконання оригінальної команди з каталога openssl / bin. Тобто, якщо мій каталог openssl знаходиться в C: dev, я перейшов би до C: \ dev \ openssl \ bin і виконав би команду так, як є
AnhSirk Dasarp

2
ви повинні вказати на файл 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 так, ти маєш рацію. твій шлях працював на мене. Дуже дякую.
сурхидамат’я

дякую ...
попробувавши

23

Використовуйте весь шлях так:

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

Це працювало для мене.


18

Будь ласка, виконайте ці кроки, сподіваюся, що ваш ключ працює належним чином:

  1. Крок 1 Вам знадобиться OpenSSL. Ви можете завантажити двійковий файл з проекту openssl-for-windows на Google Code.

  2. Крок 2 Розпакуйте папку, потім скопіюйте шлях до binпапки до буфера обміну.

    Наприклад, якщо файл розпакований до місця C:\Users\gaurav\openssl-0.9.8k_WIN32, скопіюйте шлях C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Крок 3 Додайте шлях до шляху вашого системного середовища. Після PATHвстановлення змінної середовища відкрийте cmd і введіть цю команду:

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

    Введіть свій пароль, коли буде запропоновано. Якщо команда працює, то вам буде показаний ключ.


FYI: Зазвичай пароль debug.keystore - це просто "android".
Хтось десь

11

Це для мене успішно працює.

"C: \ Програмні файли \ Java \ jdk1.6.0_26 \ bin \ keytool.exe" -exportcert -соціальні товариства -keystore "D: \ keystore \ SocialListing" | "C: \ cygwin \ bin \ openssl.exe" sha1 -двійний | "C: \ cygwin \ bin \ openssl.exe" base64

Будьте уважні з нижньою стежкою:

  • "C: \ програмні файли \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialListing" або це може бути таким " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe" або може бути таким C: \ Users \ openssl \ bin \ openssl.exe

Якщо команда успішно працює, ви побачите цю команду:

Введіть пароль для зберігання ключів: введіть свій пароль

Зашифрований гамаш **


10

пізня відповідь, але це допоможе ледачим людям, як я .. додайте цей код у свій клас додатків, не потрібно завантажувати openssl і не потрібно встановлювати шлях .. потрібно лише скопіювати цей код .. і keyHash буде згенеровано в журналі.

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

і не забудьте додати в маніфест клас MyApplication:

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

чи працює це для версії facebook? якщо ні як?
MetaSnarf

Цей код використовується для генерації ключів. І той самий ключ для випуску теж. Для версії версії переконайтеся, що ви встановили доступ публіки в консолі розробника facebook.
Сагар Чавада

Отримання помилки "При використанні вище коду" І контекст, і ID користувача повинні бути ненульовими ". @SagarChavada
Yesha Shah

6

Спочатку перейдіть до папки Java / jre / bin у cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin

Потім скористайтеся: [змінити шлях debug.keystore до правильного місця у вашій системі] встановіть openssl (для Windows 32 або 64 відповідно до ваших потреб на 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

Отже вся команда йде так: [запит на введення пароля зберігання клавіш під час виконання]

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. 

потім перейдіть C: \ Program Files \ Java \ jdk1.8.0_05 \ bin та натисніть клавішу shift і клацніть правою кнопкою миші та відкрийте cmd

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

тобто для Sha1 минулого цього
keytool -exportcert -alias androiddebugkey -keystore "C: \ User \ ABC \ .android.keystore" | openssl sha1 -бінарний | openssl base64
//, а ABC - це ім'я системи, що містить власну ім'я системи


Яку binпапку ви переглядаєте на другому кроці?
Іонут Некула

2

Я використовував цей код:

Це для мене успішно працює.

"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

використовувати це працювало для мене. будь ласка, змініть свій Шлях

C: \ Файли програм \ 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


необхідно завантажити openssl звідси code.google.com/p/openssl-for-windows/downloads/… та скопіювати папку для сміття та вставити в C: \ openssl \
Azahar

1

Завантаження та розпакування

Ви можете завантажити openssl для Windows 32 та 64 біт за відповідними посиланнями нижче:

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

OpenSSL для 64 біт OpenSSL для 32 біт

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

Тут важливо змінити наш шлях, а також встановити відкриту ssl у вашій системі

Це працює без сумнівів

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

Введіть пароль для зберігання ключів: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

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

використання вручну за допомогою кодування

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 та виконайте наступну команду

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

ви отримаєте свій ключовий хеш


0

для користувачів Windows завантажують відкритий ssl з сховища коду google https://code.google.com/p/openssl-for-windows/downloads/list

Після завантаження витягніть вміст у папку, бажано, на своєму c: диску.

Потім оновіть змінну середовища PATH, щоб ви могли використовувати .exe з будь-якого місця в командному рядку.

[windows 8] Щоб оновити змінну середовища PATH, натисніть мій комп'ютер-> властивості-> Додаткові параметри системи.

Перейдіть на вкладку «Додаткові» та натисніть кнопку «Змінна середовище» у нижній частині діалогового вікна, а потім виберіть пункт «Шлях» у розділі «Системні змінні», натиснувши кнопку «Редагувати».

Вставте шлях до папки бін вилученого завантаження openssl та натисніть кнопку ОК.

Вам потрібно буде закрити та відкрити та командному рядку, який ви, можливо, раніше запустили, щоб ви могли завантажити оновлені налаштування шляху.

Тепер запустіть цю команду:

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Oladipo.android \ debug.keystore" | openssl sha1 -бінарний | openssl base64

Ви повинні побачити ключ розробника.


0

Це працює для мене:

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

-1

Не гарантується, що генерування хешкею за допомогою цього єдиного методу openssl буде працювати. Якщо це не працює для мене. Але дякую, що дали мені вказівку вирішити мою проблему.

Гарантоване рішення: Вам потрібно розбити всю команду на окремі команди та записати вихід кожного виконання у файл.

Ви можете скористатися допомогою за наступним посиланням:

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

Насолоджуйтесь :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.