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
Наслаждайтесь:)