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

我怎样才能摆脱这个?

272973 次浏览

在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 for windows32及64bit:

OpenSSL for 64 Bits

OpenSSL for 32 Bits

这对我来说很成功。

"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

如果命令成功工作,那么你将看到这个命令:

输入keystore密码:typeyourpassword

Encryptedhashkey * *

对于那些想要安装windows二进制版本openssl(32位和64位)的人,你可以在这里找到它:

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

提供二进制发行版的网站的最新列表在这里

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

使用整个路径,像这样:

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

这对我很管用。

我使用了下面的代码:

这对我来说很成功。

"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

请遵循以下步骤,我希望你的钥匙工作正常:

  1. 步骤1需要OpenSSL。您可以从openssl-for-windows项目谷歌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
    

    在出现提示时输入密码。如果该命令有效,则会显示一个密钥

不保证用这个单独的openssl方法生成hashkey会工作。 如果对我没用的话。但是谢谢你给了我一个方向来解决我的问题

保证解决方案: 您需要将整个命令分解为单独的命令,并且必须将每次执行的输出写入文件

您可以从以下链接获取帮助:

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

享受:)

这种方法对我很有效。请更改您的路径

C:\Program Files\Java\jre7\bin keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Ace.android\debug. keystore "keystore" | "C:\openssl\bin

\openssl.exe" sha1 -二进制| "C:\openssl\bin\openssl.exe" base64

首先在cmd中导航到Java/jre/bin文件夹 cd c:\Program Files (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:

在CMD下进入bin文件夹路径,然后执行以下命令

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

你将得到你的密钥散列

对于windows用户,从谷歌的代码库https://code.google.com/p/openssl-for-windows/downloads/list下载open ssl

下载后,将内容解压到一个文件夹中,最好是在c:驱动器中。

然后更新PATH环境变量,以便可以从命令行中的任何位置使用.exe。

要更新PATH环境变量,请单击“我的电脑->属性->高级系统设置”。

单击高级选项卡,单击对话框底部的“环境变量”按钮,然后单击编辑从“系统变量”部分选择路径条目。

将该路径粘贴到解压缩的openssl下载的bin文件夹,然后单击ok。

您将需要关闭和打开之前可能启动的命令提示符,以便加载更新后的路径设置。

现在运行这个命令:

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

您应该看到开发人员键。

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
< p > 这是给Sha1的 < br > "C:\User\ABC\.android. keytool -exportcert -alias androiddebugkey -keystore "Keystore " | openssl sha1 -binary | openssl base64
. Keystore " | openssl sha1 -binary | openssl base64
. Keystore // ABC是系统名,输入自己的系统名

这是一个很晚的答案,但它将帮助像我这样的懒人。将此代码添加到你的Application类中,不需要下载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);
}
}
}

不要忘记在manifest中添加MyApplication类:

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

下载和解压缩

你可以从以下连结下载openssl for windows32及64bit:

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

OpenSSL for 64 Bits OpenSSL for 32 Bits

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

输入keystore密码:安卓

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


}

这对我来说很管用:

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

IDK,但如果你已经安装了Git,你可以在“C:\Program Files\Git\usr\bin”文件中找到openssl。以及您可以在终端中为密钥库命令使用的位置。

哦,对了,命令:

C:\Users\YOURPATH/filename.jks"C:\Program Files\Git\usr\bin\openssl"C:\Program Files\Git\usr\bin\openssl"base64

对于那些像我现在一样迷路的人,请关注Usama Sarwar的回应 但如果:< / p >

“your_openssl_path / bin / openssl.exe"

不管用,试试看

your_openssl_path / bin / openssl.exe。

没有引号。

“c: \ openssl \ bin \ openssl.exe"=比;对我没用

c: \ openssl \ bin \ openssl.exe =比;为我工作

我今天也有同样的问题,通过以下视频(SSL安装)解决了它- https://www.youtube.com/watch?v=PoAc1lpfK8I&ab_channel=GleyGames

然后,我使用Usamas命令,并运行它(在命令中更改路径后),我从java安装中的bin文件夹中运行它,使用CMD。

对我有效的全面命令:

(来自C:\Program Files\Java\ jdk-11.0.12\bin):

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.android\debug.keystore" | "C:\Program Files\OpenSSL-Win64\bin\openssl" sha1 -binary | "C:\Program Files\OpenSSL-Win64\bin\openssl" base64

步骤1

https://code.google.com/archive/p/openssl-for-windows/downloads下载用于windows的SSL。

步骤2

将文件夹解压到OpenSSL,并将其粘贴到“C:\Program Files"”。

步骤3

添加“C:\Program Files\OpenSSL\bin"到您的环境变量(编辑系统环境变量>环境变量>路径在新)。它将使openssl在终端中工作。

步骤4

添加“C:\Program Files\Android\Android Studio\jre\bin"环境变量。它将使keytool在终端中工作。

步骤5

打开一个终端并执行:

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

密码应该是android。

使用这个

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\Users\DK\openssl-0.9.8d_X64\bin\openssl.exe" sha1 -binary | "C:\Users\DK\openssl-0.9.8d_X64\bin\openssl.exe" base64

如果你在本地安装了git,很容易解决。 你可以打开git bash,在你想要生成密钥的地方更改目录,然后运行你的命令。 它将工作,因为git默认安装开放的SSL exe,你不需要每次你想运行SSL exe手动设置路径。

如果你在windows上并且安装了git,那么你可以使用git Bash运行open ssl命令。

  1. 进入你想要存储密钥的目录

  2. 右键单击并打开GIT Bash

  3. 此处可执行任何openssl命令。如。

    openssl enc -aes-128-cbc -k test -P -md sha1