Openssl不被视为内部或外部命令

Khu*_*ram 169 java android keytool facebook-android-sdk

我希望为我的应用程序生成一个应用程序签名,稍后将与Facebook集成.在Facebook的一个教程中,我发现了这个命令:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

在本教程中,它表示通过运行此cmd,我的生成签名的过程将开始.

但是,此命令会出错:

openssl is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)

我怎么能摆脱这个?

Usa*_*war 380

嗯,在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
Run Code Online (Sandbox Code Playgroud)

请记住,您将输入的路径将是您安装openssl的路径...希望这有助于.. :-)

编辑:

你可以从下面的相应链接下载openssl for windows 32和64 bit:

OpenSSL for 64位

OpenSSL 32位

  • 更好的方法是从openssl/bin目录执行原始命令.即如果我的openssl目录在C:dev中,我将移动到C:\ dev\openssl\bin,并按原样执行命令 (6认同)
  • 你应该指出openssl.exe文件:exportcert -alias androiddebugkey -keystore~/.android /debug.keystore | "C:\ openssl\bin\openssl.exe"sha1 -binary | "C:\ openssl\bin\op enssl.exe"base64 (2认同)
  • 您的答案非常完美。非常感谢 ! (2认同)

Kal*_*ski 22

使用整个路径,如下所示:

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64
Run Code Online (Sandbox Code Playgroud)

它对我有用.


小智 18

请按照以下步骤操作,希望您的密钥正常工作:

  1. 步骤1您将需要OpenSSL.您可以从Google Code上的openssl-for-windows项目下载二进制文件.

  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
    
    Run Code Online (Sandbox Code Playgroud)

    出现提示时键入密码.如果该命令有效,那么您将看到一个键.


Sid*_*kar 11

这对我来说很成功.

"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**


Sag*_*ada 10

这是迟到的答案,但它会帮助像我这样的懒人..将此代码添加到您的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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在清单中添加MyApplication类:

<application
        android:name=".MyApplication"
</application>
Run Code Online (Sandbox Code Playgroud)


Hyb*_*elp 8

如果您使用的是 Windows 并且安装了 git,那么您可以使用 GIT Bash 运行 open ssl 命令。

  1. 转到您要存储密钥的目录

  2. 右键单击并打开 GIT Bash

  3. 在这里您可以运行任何 openssl 命令。例如

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


小智 6

首先导航到cmd cd c:\ Program Files(x86)\ Java\jre7\bin中的Java/jre/bin文件夹

然后使用:[将debug.keystore路径更改为系统上的正确位置]安装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
Run Code Online (Sandbox Code Playgroud)

所以整个命令是这样的:[提示在执行时输入密钥库密码]

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:
Run Code Online (Sandbox Code Playgroud)


san*_*dhu 5

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. 
Run Code Online (Sandbox Code Playgroud)

然后转到C:\ Program Files \ Java \ jdk1.8.0_05 \ bin并按Shift键并右键单击并打开cmd

C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path 
Run Code Online (Sandbox Code Playgroud)

Sha1过去通过此
密钥工具-exportcert -alias androiddebugkey -keystore“ C:\ User \ ABC \ .android.keystore” | openssl sha1 -binary | openssl base64
//和ABC是系统名称,并放入自己的系统名称