Java Openssl未被识别为内部或外部命令

Java Openssl未被识别为内部或外部命令,java,android,facebook-android-sdk,keytool,Java,Android,Facebook Android Sdk,Keytool,我希望为我的应用程序生成一个应用程序签名,该签名稍后将与Facebook集成。在Facebook的一个教程中,我发现了以下命令: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 C:\>keytool -exportcert -alias androiddebugkey -keystore [path

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

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
在教程中,它说通过运行这个cmd,我生成签名的过程将开始

但是,此命令会给出一个错误:

openssl is not recognized as an internal or external command

我怎样才能摆脱它呢?

在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的路径…希望这有帮助…-)

编辑:

您可以从下面的相应链接下载适用于windows 32和64位的openssl:


这对我来说很成功

"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\U 26\bin\keytool.exe”-exportcert-别名socialisting-密钥库“D:\keystore\socialisting”|“C:\cygwin\bin\openssl.exe”sha1-binary |“C:\cygwin\bin\openssl.exe”base64

注意以下路径:

  • “C:\Program Files\Java\jdk1.6.0\U 26\bin\keytool.exe”
  • “D:\keystore\SocialListing”或者它可以是这样的“C:\Users\Shaon.android\debug.keystore
  • “C:\cygwin\bin\openssl.exe”或者可以是这样的C:\Users\openssl\bin\openssl.exe
如果命令成功运行,您将看到以下命令:

输入密钥库密码:键入您的密码

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

Encryptedhashkey**

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

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


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

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您将需要OpenSSL。您可以从Google代码上的project下载二进制文件

  • 步骤2解压缩文件夹,然后将
    bin
    文件夹的路径复制到剪贴板

    例如,如果文件解压缩到位置
    C:\Users\gaurav\openssl-0.9.8k_WIN32
    ,则复制路径
    C:\Users\gaurav\openssl-0.9.8k_WIN32\bin

  • 步骤3将路径添加到系统环境路径中。设置
    PATH
    环境变量后,打开cmd并键入以下命令:

    keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
    
    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
    
    出现提示时键入密码。如果命令起作用,则会显示一个键


  • 不能保证使用这个单一的openssl方法生成hashkey会起作用。 如果它对我不起作用。但是谢谢你给我一个解决问题的方向

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

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


    享受:)

    用这个对我有用。请改变你的路线

    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

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

    然后使用:[将debug.keystore路径更改为系统上的正确位置] 安装openssl(适用于windows 32或64,根据您的需要,请访问c:\openssl)

    所以整个命令如下:[执行时提示输入密钥库密码]

    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用户的密钥散列

    ,从google的代码库下载OpenSSL

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

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

    [windows 8]要更新PATH环境变量,请单击我的电脑->属性->高级系统设置

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

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

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

    现在运行以下命令:

    keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
    
    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
    
    keytool-exportcert-alias androiddebugkey-keystore“C:\Users\Oladipo.android\debug.keystore”| openssl sha1-binary | 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 Files\Java\jdk1.8.0\u 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是系统名把自己的系统名放进去这是一个迟来的答案,但它会帮助像我这样的懒惰的人。。将此代码添加到应用程序类中,无需下载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>
    

    下载并解压缩

    您可以从下面的相应链接下载适用于windows 32和64位的openssl:

    用于64位的OpenSSL用于32位的OpenSSL

    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
    
    输入密钥库密码:android

    **ZrRtxw36xWNYL+h3aJdcCeQQxi0=**
    
    ===================================