Openssl не распознается как внутренняя или внешняя команда

Я хочу создать подпись приложения для своего приложения, которое позже будет интегрировано с 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

Как я могу избавиться от этого?

Ответ 1

Хорошо на месте 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... надеюсь, что это поможет..: -)

Edit:

вы можете загрузить openssl для окон 32 и 64 бит из соответствующих ссылок ниже:

OpenSSL для 64 бит

OpenSSL для 32 бит

Ответ 2

Используйте весь путь, например:

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

Это сработало для меня.

Ответ 3

Пожалуйста, следуйте этим шагам, я надеюсь, что ваш ключ работает правильно:

  • Шаг 1 Вам понадобится OpenSSL. Вы можете загрузить двоичный файл из openssl-for-windows в Google Code.

  • Шаг 2 Разархивируйте папку, затем скопируйте путь в папку bin в буфер обмена.

    Например, если файл распакован в папку C:\Users\gaurav\openssl-0.9.8k_WIN32, скопируйте путь C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  • Шаг 3 Добавьте путь к пути к вашей системе. После установки переменной среды PATH откройте cmd и введите следующую команду:

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

    Введите свой пароль при появлении запроса. Если команда работает, вам будет показан ключ.

Ответ 4

Это сработало для меня успешно.

"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

Будьте осторожны с приведенным ниже путем:

  • "C:\Program Files\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

Если команда успешно работает, вы увидите следующую команду:

Введите пароль хранилища ключей: typeyourpassword

Encryptedhashkey **

Ответ 5

это поздний ответ, но это поможет ленивым людям вроде меня.. добавьте этот код в свой класс приложений, нет необходимости загружать 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>

Ответ 6

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

Затем используйте: [изменить путь debug.keystore к правильному местоположению в вашей системе] установите openssl (для окон 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:

Ответ 7

Я использовал этот код:

Это сработало для меня успешно.

"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

Ответ 8

Использование этого сработало для меня. измените свой путь

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

Ответ 9

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 it’s C:\Program Files\Java\jdk1.8.0_05\bin 
4:Paste all the files you copied from Openssl’s 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 -binary | openssl base64
//и ABC - это системное имя, введя собственное системное имя

Ответ 10

Загрузка и распаковка

Вы можете загрузить openssl для окон 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

Важно изменить наш путь Здесь, а также установить open 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();
        }

    }

Ответ 11

Для тех, кто ищет более новое место для установки двоичной версии Windows opensl (32-битной и 64-битной), вы можете найти ее здесь:

http://slproweb.com/products/Win32OpenSSL.html

Здесь находится современный список веб-сайтов, предлагающих двоичные дистрибутивы

http://www.openssl.org/related/binaries.html

Ответ 12

перейдите в путь папки bin в cmd и выполните следующую команду

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

вы получите свой хэш ключа

Ответ 13

для пользователей Windows скачать open ssl из репозитория кодов Google https://code.google.com/p/openssl-for-windows/downloads/list

После загрузки извлеките содержимое в папку, желательно в вашем диске c:.

Затем обновите переменную среды PATH, чтобы использовать .exe из любого места в командной строке.

[windows 8] Чтобы обновить переменную среды PATH, щелкните мой компьютер- > properties- > Advanced System Settings.

Перейдите на вкладку "Дополнительно" и нажмите кнопку "Переменная среды" в нижней части диалогового окна, затем выберите запись "Путь" в разделе "Системные переменные", нажав "Изменить".

Вставьте путь к папке bin извлеченной загрузки openssl и нажмите ok.

Вам нужно будет закрыть и открыть приглашение командной строки, которое вы, возможно, ранее запустили, чтобы вы могли загрузить обновленные параметры пути.

Теперь запустите эту команду:

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

Вы должны увидеть ключ разработчика.

Ответ 14

Это работает для меня:

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

Ответ 15

Не гарантируется, что генерация hashkey с помощью этого единственного метода openssl будет работать. Если это не сработает для меня. Но спасибо за то, что я дал мне решение решить мою проблему.

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

Вы можете получить помощь по следующей ссылке:

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

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