Openssl को आंतरिक या बाहरी कमांड के रूप में मान्यता प्राप्त नहीं है


177

मैं अपने ऐप के लिए एक एप्लीकेशन सिग्नेचर जेनरेट करना चाहता हूं जिसे बाद में फेसबुक के साथ इंटीग्रेट किया जाएगा। फेसबुक के एक ट्यूटोरियल में, मुझे यह कमांड मिली:

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

ट्यूटोरियल में, यह कहता है कि इस cmd को चलाने से, हस्ताक्षर बनाने की मेरी प्रक्रिया शुरू हो जाएगी।

हालाँकि, यह आदेश एक त्रुटि देता है:

openssl is not recognized as an internal or external command

मुझे इससे कैसे छुटकारा मिल सकता है?


10
ओपनएसएसएल डाउनलोड और इंस्टॉल करें ।
माइकल पेट्रोत्ता

मैंने उनमें से 3 को डाउनलोड किया कोई भी संगत नहीं है: /
खुर्रम

1
इसका क्या मतलब है, खुर्रम?
माइकल पेट्रोत्ता

1
मैंने दिए गए लिंक के कई संस्करण डाउनलोड किए हैं, जो दिए गए हैं, लेकिन उनमें से प्रत्येक स्थापना से पहले एक त्रुटि देता है कि यह विंडोज 64-बिट के साथ संगत नहीं है। क्या आप मुझे बता सकते हैं कि मुझे सटीक ओपनसेल की आवश्यकता है
खुर्रम

1
आप इसे नीचे दिए गए लिंक से प्राप्त कर सकते हैं, जो मैंने अपने ans में पोस्ट किया है ...
Usama Sarwar

जवाबों:


395

अच्छी तरह से खुलने की जगह पर ... आपको वास्तव में अपने खुलने वाले फ़ोल्डर में पथ डालना होगा जिसे आपने डाउनलोड किया है। आपका वास्तविक आदेश इस तरह दिखना चाहिए:

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

याद रखें, आपके द्वारा दर्ज किया गया पथ वह पथ होगा जहां आपने खुलता स्थापित किया है ... आशा है कि यह मदद करता है .. :-)

संपादित करें:

आप नीचे दिए गए संबंधित लिंक से विंडोज़ 32 और 64 बिट के लिए खुलता डाउनलोड कर सकते हैं:

64 बिट्स के लिए ओपनएसएसएल

32 बिट्स के लिए ओपनएसएसएल


1
यह कहता है: \ खुलने पर \ बिन \ खुलता है मान्यता प्राप्त नहीं है
अखिल जैन

7
एक बेहतर तरीका यह है कि ओरिजिनल कमांड को ओपनएसएल / बिन डायरेक्टरी से निष्पादित किया जाए। Ie अगर मेरी ओपनसीएल निर्देशिका सी: देव में है, तो मैं सी: \ देव \ ओप्सनल \ बिन पर
ले जाऊंगा

2
आपको खुलने वाले। exe फ़ाइल को इंगित करना चाहिए: Exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ opensl \ bin \ opensl.exe" sha1 -binary | "C: \ opensl \ bin \ op enssl.exe" base64
phanhongphucit

@LatentBoy yess आप सही हैं। मेरे लिए आपके रास्ते ने काम किया। बहुत बहुत धन्यवाद।
सूर्यादिमत्य

धन्यवाद ... लगभग एक घंटे की कोशिश के बाद, आपके जवाब ने मेरे लिए काम किया
क्रुणाल शाह

23

संपूर्ण पथ का उपयोग करें, जैसे:

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

इसने मेरे लिए काम किया।


18

कृपया इन चरणों का पालन करें, मुझे आशा है कि आपकी कुंजी ठीक से काम कर रही है:

  1. चरण 1 आपको ओपनएसएसएल की आवश्यकता होगी। आप Google कोड पर बाइनरी ओपन-फॉर-विंडोज प्रोजेक्ट से डाउनलोड कर सकते हैं ।

  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

    संकेत मिलने पर अपना पासवर्ड टाइप करें। यदि कमांड काम करता है, तो आपको एक कुंजी दिखाई जाएगी।


FYI करें: आमतौर पर debug.keystore का पासवर्ड सिर्फ "android" है।
कोई व्यक्ति

11

यह मेरे लिए सफलतापूर्वक काम किया है।

"C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe" -exportcert -alias sociallisting -Stystore "D: \ keystore \ SocialListing" | "C: \ cygwin \ bin \ opensl.exe" sha1 -binary | "C: \ cygwin \ bin \ opensl.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 \ opensl.exe" या यह इस तरह हो सकता है C: \ Users \ खुलता है \ बिन \ खुलता है।

यदि कमांड सफलतापूर्वक काम करती है तो आप इस कमांड को देखेंगे:

कीस्टॉर पासवर्ड दर्ज करें: टाइप करेंवॉटरवर्ड

Encryptedhashkey **


10

यह देर से जवाब है, लेकिन यह मेरे जैसे आलसी लोगों को मदद करेगा .. इस कोड को अपने एप्लिकेशन क्लास में जोड़ें, ओपनसेल डाउनलोड करने की कोई आवश्यकता नहीं है और न ही पथ को सेट करने की आवश्यकता है .. केवल आवश्यकता इस कोड को कॉपी करने की है .. और की-हैश लॉग में उत्पन्न।

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 class जोड़ना न भूलें:

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

फेसबुक के रिलीज संस्करण के लिए यह काम करता है? यदि नहीं तो कैसे?
MetaSnarf

इस कोड का उपयोग केहाश उत्पन्न करने के लिए किया जाता है। और रिलीज के लिए भी इसकी वही कुंजी है। रिलीज़ संस्करण के लिए सुनिश्चित करें कि आपने फेसबुक डेवलपर कंसोल में सार्वजनिक एक्सेस सेट किया है।
सागर चावड़ा

कोड के ऊपर उपयोग किए जाने पर "दोनों संदर्भ और ApplicationId गैर-अशक्त होना चाहिए" त्रुटि हो रही है। @ सागरचवड़ा
यशा शाह

6

सबसे पहले cmd cd c: \ Program Files (x86) \ Java \ j7 / bin में अपने Java / jre / bin फोल्डर को नेविगेट करें

फिर उपयोग करें: [अपने सिस्टम पर सही स्थान पर debug.keystore पाथ बदलें] इंस्टॉल करता है css: (विंडोज़ 32 या 64 के लिए अपनी आवश्यकताओं के अनुसार c: \ opensl)

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:

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 its C:\Program Files\Java\jdk1.8.0_05\bin 
4:Paste all the files you copied from Openssls bin folder to the Jdk folder. 

उसके बाद C: \ Program Files \ Java \ jdk1.8.0_05 \ bin पर जाएं और शिफ्ट कुंजी और राइट क्लिक करें और cmd दबाएं

C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path 

यह Sha1 पिछले के लिए है यह
कीटूल -exportcert -alias androiddebugkey -Stystore "C: \ User \ ABC \ .android.keystore" | opensl sha1 -binary | Opensl बेस 64
// और एबीसी सिस्टम नेम का सिस्टम नाम है


binदूसरे चरण में आप किस फ़ोल्डर का उल्लेख कर रहे हैं?
आयनुत नेचुला

2

मैंने इस कोड का उपयोग किया है:

यह मेरे लिए सफलतापूर्वक काम किया है।

"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

2

मेरे लिए इस काम का उपयोग करें। कृपया अपना पथ बदलें

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

\ Openssl.exe "SHA1 -binary |" C: \ openssl \ बिन \ "बेस 64 openssl.exe


यहाँ से openssl डाउनलोड करना होगा code.google.com/p/openssl-for-windows/downloads/... और बिन फ़ोल्डर की प्रतिलिपि और सी के लिए पेस्ट: \ openssl \
Azahar

1

डाउनलोड और अनज़िप

आप नीचे दिए गए संबंधित लिंक से विंडोज़ 32 और 64 बिट के लिए ओपनसेल डाउनलोड कर सकते हैं:

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

64 बिट्स के लिए ओपनएसएसएल 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

महत्वपूर्ण हमारे पथ को बदलें यहां अपने सिस्टम में ओपन एसएसएल स्थापित करें

यह काम कर रहा है कोई संदेह नहीं है

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

    }

0

उन विंडो के द्विआधारी संस्करण (32 बिट और 64 बिट) को स्थापित करने के लिए अधिक हालिया स्थान की तलाश करने वालों के लिए आप इसे यहां पा सकते हैं:

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

द्विआधारी वितरण की पेशकश करने वाली वेबसाइटों की एक अद्यतित सूची यहां है

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


0

cmd में बिन फ़ोल्डर पथ पर जाएं और फिर निम्न कमांड चलाएं

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

आपको अपना प्रमुख हैश मिलेगा


0

विंडोज़ के लिए उपयोगकर्ता Google के कोड रिपॉजिटरी https://code.google.com/p/openssl-for-windows/downloads/list से ओपन एसएसएल डाउनलोड करते हैं

डाउनलोड करने के बाद, अपने सी: ड्राइव में अधिमानतः एक फ़ोल्डर में सामग्री निकालें।

फिर अपने PATH पर्यावरण चर को अपडेट करें ताकि आप अपनी कमांड लाइन में किसी भी स्थान से .exe का उपयोग कर सकें।

[विंडोज़,] अपने पैठ पर्यावरण चर को अद्यतन करने के लिए, मेरे कंप्यूटर पर क्लिक करें-> गुण-> उन्नत सिस्टम सेटिंग्स।

उन्नत टैब पर क्लिक करें और संवाद के निचले भाग में 'पर्यावरण चर' बटन पर क्लिक करें और फिर संपादन पर क्लिक करके 'सिस्टम चर' अनुभाग से पथ प्रविष्टि का चयन करें।

निकाले गए Opensl डाउनलोड के बिन फ़ोल्डर में पथ पेस्ट करें और ठीक पर क्लिक करें।

आपको पहले बंद किए गए और बंद करने और खोलने और कमांड प्रॉम्प्ट करने की आवश्यकता होगी ताकि आप अपडेट किए गए पथ सेटिंग्स को लोड कर सकें।

अब इस कमांड को रन करें:

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Oladipo.android \ debug.keystore" | opensl sha1 -binary | खुलता है base64

आपको डेवलपर कुंजी देखनी चाहिए।


0

यह मेरे लिए काम करता है:

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

-1

यह गारंटी नहीं है कि इस एकल ओपनसेल विधि के साथ हैशेक उत्पन्न करना काम करेगा। अगर यह मेरे लिए काम नहीं करता है। लेकिन मेरे मुद्दे को हल करने के लिए मुझे एक दिशा देने के लिए धन्यवाद।

गारंटी समाधान: आपको पूरे कमांड को अलग-अलग कमांड में तोड़ने की जरूरत है और फाइल में हर निष्पादन का आउटपुट लिखना है।

आप निम्न लिंक से मदद ले सकते हैं:

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

का आनंद लें :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.