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
Как я могу избавиться от этого?
15 ответов
хорошо на месте 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 для windows 32 и 64 бит из соответствующих ссылок ниже:
используйте весь путь, например:
exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64
это сработало для меня.
пожалуйста, следуйте этим шагам, я надеюсь, что ваш ключ работает правильно:
Шаг 1 вам понадобится OpenSSL. Вы можете скачать двоичный файл из openssl-for-windows проект по коду Google.
-
Шаг 2 распакуйте папку, затем скопируйте путь к
bin
папку в буфер обмена.например, если файл распакован в папку
C:\Users\gaurav\openssl-0.9.8k_WIN32
, затем скопировать путьC:\Users\gaurav\openssl-0.9.8k_WIN32\bin
. -
Шаг 3 добавьте путь к вашей системной среде path. После
PATH
переменная окружения установлена, откройте cmd и введите следующую команду:C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
введите пароль при запросе. Если команда работает, то вам будет показан ключ.
Это работает для меня успешно.
"C:\Program файлы\папку Java\jdk1.6.\0_26 бин\ключей.ехе" -exportcert -псевдоним sociallisting -хранилище "D:\keystore\SocialListing" | "C:\cygwin\bin\openssl.exe " sha1-binary | "C:\cygwin\bin\openssl - ... ехе" в base64
будьте осторожны с ниже путь :
- "C:\Program файлы\папку Java\jdk1.6.\0_26 бин\ключей.EXE-файл"
- "D:\keystore\SocialListing" или это может быть вот так"C:\Users\Shaon.android\debug.хранилища ключей"
- "C:\cygwin\bin\openssl.EXE-файл" или может быть такой C:\Users\openssl\bin\openssl.exe
Если команда успешно работает, то вы увидите эту команду :
введите пароль хранилища ключей: typeyourpassword
Encryptedhashkey**
это поздний ответ, но это поможет ленивым людям, как я.. добавьте этот код в свой класс приложений, нет необходимости загружать 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 в manifest:
<application
android:name=".MyApplication"
</application>
сначала перейдите в папку Java/jre/bin в cmd cd c:\Program файлы (x86)\Java\jre7\bin
затем используйте : [изменить отладка.путь хранилища ключей к правильному местоположению в вашей системе] установите 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:
я использовал этот код:
это работает для меня успешно.
"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 файлы\Java\jre7\bin keytool-exportcert-псевдоним androiddebugkey-хранилище ключей "C:\Users\Ace - ... android\debug.keystore " | "C:\openssl\bin
\в OpenSSL.exe " sha1-binary | "C:\openssl\bin\openssl - ... ехе" в base64
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 файлы\Java\jdk1.8.0_05\bin и нажмите клавишу shift, щелкните правой кнопкой мыши и откройте cmd
C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path
это для Sha1 мимо этого
keytool-exportcert-псевдоним androiddebugkey-хранилище ключей "C:\User\ABC\.андроид.keystore " | openssl sha1-binary / openssl base64
//и ABC-это имя системы имя системы
загрузки и распакуйте
вы можете скачать 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
важно измените наш путь здесь, а также установите 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
Enter пароль хранилища ключей: 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();
}
}
для тех, кто ищет более недавнее место для установки двоичной версии Windows openssl (32bit и 64bit), вы можете найти его здесь:
http://slproweb.com/products/Win32OpenSSL.html
обновленный список веб-сайтов, которые предлагают бинарные дистрибутивы здесь
перейдите к пути к папке bin в cmd, а затем выполните следующую команду
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
вы получите свой ключ хэш
для пользователей windows загрузите open ssl из репозитория кода googlehttps://code.google.com/p/openssl-for-windows/downloads/list
после загрузки извлеките содержимое в папку, предпочтительно на диске c:.
затем обновите переменную среды PATH, чтобы вы могли использовать .exe из любого места в командной строке.
[windows 8] чтобы обновить переменную среды PATH, щелкните Мой Компьютер- > Свойства - >расширенная система Настройки.
перейдите на вкладку Дополнительно и нажмите кнопку "переменная среды" в нижней части диалогового окна, затем выберите запись пути из раздела "системные переменные", нажав кнопку Изменить.
вставьте путь к папке bin извлеченной загрузки openssl и нажмите кнопку ОК.
вам нужно будет закрыть и открыть и командную строку, которую вы, возможно, ранее запустили, чтобы вы могли загрузить обновленные настройки пути.
Теперь запускаем этот команда:
keytool-exportcert-псевдоним androiddebugkey-хранилище ключей "C:\Users\Oladipo - ... android\debug.keystore " | openssl sha1-binary / openssl base64
вы должны увидеть ключ разработчика.
это работает для меня:
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
не гарантируется, что создание хэш-ключа с помощью этого одного метода openssl будет работать. Если это не сработает для меня. Но спасибо, что дал мне направление, чтобы решить мою проблему.
Гарантированное Решение : Вам нужно разбить всю команду на отдельные команды и записать вывод каждого выполнения в файл.
вы можете воспользоваться помощью по следующей ссылке :
http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1
наслаждайтесь :)