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\bin\keytool.exe " - exportcert-псевдоним sociallisting-keystore "D:\keystore\SocialListing" | "C:\cygwin\bin\openssl.exe " sha1-binary | "C:\cygwin\bin\openssl.exe " base64
будьте осторожны с ниже путь :
- "C:\Program файлы\Java\jdk1.6.0_26\bin\keytool.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 в манифест:
<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-keystore "C:\Users\Ace.android\debug.keystore" | "C:\openssl\bin
\openssl.exe " sha1-binary | "C:\openssl\bin\openssl.exe " 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-keystore "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-keystore "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
наслаждайтесь :)