ওপেনসেল কোনও অভ্যন্তরীণ বা বাহ্যিক আদেশ হিসাবে স্বীকৃত নয়


177

আমি আমার অ্যাপ্লিকেশনটির জন্য একটি আবেদন স্বাক্ষর তৈরি করতে চাই যা পরে ফেসবুকের সাথে সংহত করা হবে। ফেসবুকের একটি টিউটোরিয়ালে আমি এই আদেশটি পেয়েছি:

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

টিউটোরিয়ালে এটি বলে যে এই সেন্টিমিডি চালিয়ে আমার স্বাক্ষর উত্পন্ন করার প্রক্রিয়া শুরু হবে।

তবে, এই আদেশটি একটি ত্রুটি দেয়:

openssl is not recognized as an internal or external command

আমি কীভাবে এ থেকে মুক্তি পেতে পারি?


10
ওপেনএসএসএল ডাউনলোড এবং ইনস্টল করুন ।
মাইকেল পেট্রোটা

আমি তাদের মধ্যে 3 টি ডাউনলোড করেছি যে কেউ উপযুক্ত নয়: /
খুররম

1
তার মানে কি, খুররম?
মাইকেল পেট্রোটা

1
আপনি প্রদত্ত লিঙ্কটি থেকে আমি ওপেনএসএল এর অনেকগুলি সংস্করণ ডাউনলোড করেছি তবে তাদের প্রত্যেকটি ইনস্টলেশনের আগে একটি ত্রুটি দেয় যা এটি উইন্ডোজ - 64 বিটের সাথে সামঞ্জস্যপূর্ণ নয়। আমার প্রয়োজনীয় ওপেনসেলটি আমাকে বলতে পারেন
খুররম

1
আমি নীচে আমার উত্তরগুলিতে পোস্ট করা লিংকটি থেকে আপনি এটি পেতে পারেন ...
উসামা সরওয়ার

উত্তর:


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
ওপেনএসএল / বিন ডিরেক্টরি থেকে মূল কমান্ডটি কার্যকর করা একটি আরও ভাল উপায়। অর্থ্যাৎ যদি আমার ওপেনসেল ডিরেক্টরিটি সি: ডি তে থাকে তবে আমি সি: \ দেব \
ওপেনসেল to বিনে চলে যেতাম

2
আপনার ওপেনএসএল.এক্সি ফাইলটি দেখানো উচিত: এক্সপোর্টসার্ট -ালিয়াস অ্যান্ড্রয়েড ডেগুগি-কিস্টোর ~ / .android /debug.keystore | "সি: \ ওপেনসেল \ বিন \ ওপেনএসএল.এক্সে" শা 1 -বাইনারি | "সি: \ ওপেনসেল \ বিন \ অপ এনএসএল.এক্সই" বেস 64
ফানহংফুসিত

@ লেটেন্টবয় ইয়াস আপনি ঠিক বলেছেন। তোমার পথ আমার জন্য কাজ করেছে অনেক ধন্যবাদ.
সুরহিদমত্যা

ধন্যবাদ ... প্রায় এক ঘন্টা চেষ্টা করার পরে, আপনার উত্তরটি আমার পক্ষে কাজ করেছে
কৃপাল শাহ

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 আপনার ওপেনএসএসএল প্রয়োজন হবে। আপনি গুগল কোডে উইন্ডোজ ওপেনসেল থেকে বাইনারি ডাউনলোড করতে পারেন ।

  2. পদক্ষেপ 2 ফোল্ডারটি আনজিপ করুন, তারপরে পাথটি অনুলিপি করুনbin ক্লিপবোর্ডে ।

    উদাহরণস্বরূপ, যদি ফাইলটি লোকেশন থেকে আনজিপ করা থাকে C:\Users\gaurav\openssl-0.9.8k_WIN32, তবে পাথটি অনুলিপি করুন C:\Users\gaurav\openssl-0.9.8k_WIN32\bin

  3. পদক্ষেপ 3 আপনার সিস্টেমের পরিবেশের পথে পাথ যুক্ত করুন। আপনার PATHপরিবেশ পরিবর্তনশীল সেট হওয়ার পরে , সিএমডি খুলুন এবং এই আদেশটি টাইপ করুন:

    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64

    জিজ্ঞাসা করা হলে আপনার পাসওয়ার্ড টাইপ করুন। যদি কমান্ডটি কাজ করে, তবে আপনাকে একটি কী প্রদর্শিত হবে।


এফওয়াইআই: সাধারণত ডিবাগ.কিস্টোর পাসওয়ার্ডটি কেবল "অ্যান্ড্রয়েড" থাকে।
কেউ কোথাও কোথাও

11

এটি আমার জন্য সফলভাবে কাজ করা হয়।

"সি: \ প্রোগ্রাম ফাইলসমূহ \ জাভা \ jdk1.6.0_26 \ বিন \ কীটোল.এক্সে"-এক্সপোর্টসর্ট -ালিয়াস সামাজিক তালিকা -কীস্টোর "ডি: \ কীস্টোর \ সামাজিক তালিকা" | "সি: \ সাইগউইন \ বিন \ ওপেনসেল.এক্সে" শা 1 -বাইনারি | "সি: \ সাইগউইন \ বিন \ ওপেনসেল.এক্সই" বেস 64

নীচের পথটি সম্পর্কে সতর্কতা অবলম্বন করুন:

  • "সি: \ প্রোগ্রাম ফাইল \ জাভা \ jdk1.6.0_26 \ বিন \ কীটোল.এক্সে"
  • "ডি: \ কীস্টোর \ সোশ্যাললিস্টিং" বা এটি এর মতো হতে পারে " সি: \ ব্যবহারকারীরা শাওন.অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর "
  • "সি: \ সাইগউইন \ বিন \ ওপেনসেল.এক্সই" বা এটি এর মতো হতে পারে : \ ব্যবহারকারী \ ওপেনসেল \ বিন \ ওপেনএসএল

যদি কমান্ড সফলভাবে কাজ করে তবে আপনি এই আদেশটি দেখতে পাবেন:

কীস্টোর পাসওয়ার্ড লিখুন: টাইপ করুন আপনার পাসওয়ার্ড

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

এবং ম্যানিফেস্টে মাই অ্যাপ্লিকেশন ক্লাস যুক্ত করতে ভুলবেন না:

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

এই ফেসবুক প্রকাশের সংস্করণ জন্য কাজ করে? যদি না হয় কিভাবে?
মেটাসনার্ফ

এই কোডটি কিহ্যাশ উত্পন্ন করতে ব্যবহৃত হয়। এবং মুক্তির জন্য এটির একই কী। রিলিজ সংস্করণে নিশ্চিত হয়ে নিন যে আপনি ফেসবুক বিকাশকারী কনসোলে সর্বজনীন অ্যাক্সেস সেট করেছেন।
সাগর চাওয়াদা

উপরের কোড ব্যবহার করার সময় ত্রুটি পাওয়া "উভয় প্রসঙ্গ এবং অ্যাপ্লিকেশনআইড অবশ্যই নন-নাল হওয়া উচিত"। @ সাগরচাদা
শাহ

6

প্রথমে আপনার জাভা / জেআর / বিন ফোল্ডারে নেভিগেট করুন সিএমডি সিডি সি: \ প্রোগ্রাম ফাইল (x86) \ জাভা \ jre7 \ বিন

তারপরে ব্যবহার করুন: [আপনার সিস্টেমে সঠিক স্থানে ডিবাগ.কিস্টোরের পাথ পরিবর্তন করুন] ওপেনসেল ইনস্টল করুন (উইন্ডোজ 32 বা 64 এর জন্য আপনার প্রয়োজন অনুসারে সি: \ ওপেনসেল)

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. 

তারপরে সি: \ প্রোগ্রাম ফাইলসমূহ \ জাভা \ jdk1.8.0_05 \ বিন যান এবং শিফট কী এবং ডান ক্লিক টিপুন এবং সেন্টিমিডি খুলুন

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

এটি Sha1 এর আগে এই
কীটোল-এক্সপোর্টসর্ট-বালিয়াস অ্যান্ড্রয়েড ডেগুগি-কিস্টোর "সি: \ ব্যবহারকারী \ এবিসি and .অ্যান্ড্রয়েড.কিস্টোর" | ওপেনসএল sha1-বাইনারি | ওপেনসেল বেস 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

এটি আমার জন্য কাজ করে। আপনার পথ পরিবর্তন করুন

সি: \ প্রোগ্রাম ফাইলসমূহ \ জাভা \ jre7 \ বিন কীটোল-এক্সপোর্টসর্ট -ালিয়াস অ্যান্ড্রয়েডব্যাগকি -কিস্টোর "সি: \ ব্যবহারকারীগণ \ এস.এন্ড্রয়েড \ ডিবাগ.কিস্টোর" | "সি: \ OpenSSL \ বিন

\ openssl.exe "sha1 -binary |" C: \ openssl l bin \ openssl.exe "বেস 64


এখান থেকে অবশ্যই ওপেনএসএল ডাউনলোড করুন কোড. google.com/p/openssl-for-windows/downloads/… এবং বিন ফোল্ডারটি অনুলিপি করুন এবং সিটিতে পোস্ট করুন : \ ওপেনসেল \
আজাহার

1

ডাউনলোড এবং আনজিপ করুন

আপনি নীচে সম্পর্কিত লিঙ্কগুলি থেকে উইন্ডোজ 32 এবং 64 বিটের জন্য ওপেনসেলটি ডাউনলোড করতে পারেন:

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

32 বিটের জন্য ওপেনএসএসএল 64 বিটের জন্য

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

কীস্টোরের পাসওয়ার্ড প্রবেশ করুন: অ্যান্ড্রয়েড

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

সেমিডিতে বিন ফোল্ডার পথে যান এবং তারপরে নিম্নলিখিত কমান্ডটি চালান

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

আপনি আপনার কী হ্যাশ পাবেন


0

উইন্ডোজ ব্যবহারকারীদের জন্য গুগলের কোড সংগ্রহস্থল https://code.google.com/p/openssl-for-windows/downloads/list থেকে ওপেন এসএসএল ডাউনলোড করুন

ডাউনলোডের পরে, আপনার সি: ড্রাইভে পছন্দসইভাবে ফোল্ডারে সামগ্রীগুলি সরিয়ে ফেলুন।

তারপরে আপনার PATH এনভায়রনমেন্ট ভেরিয়েবল আপডেট করুন যাতে আপনি আপনার কমান্ড লাইনের যে কোনও অবস্থান থেকে .exe ব্যবহার করতে পারেন।

[উইন্ডোজ 8] আপনার প্যাথ পরিবেশের পরিবর্তনশীল আপডেট করতে, আমার কম্পিউটার-> বৈশিষ্ট্যসমূহ-> উন্নত সিস্টেম সেটিংসে ক্লিক করুন।

অ্যাডভান্সড ট্যাবে ক্লিক করুন এবং ডায়ালগের নীচে অবস্থিত 'পরিবেশ পরিবর্তনশীল' বোতামটি ক্লিক করুন তারপরে সম্পাদনা ক্লিক করে 'সিস্টেম ভেরিয়েবল' বিভাগ থেকে পাথ এন্ট্রি নির্বাচন করুন।

নিষ্ক্রিয় ওপেনএসএল ডাউনলোডের বিন ফোল্ডারের পাথটি আটকে দিন এবং ঠিক আছে ক্লিক করুন।

আপনাকে পূর্বে চালু করা হতে পারে আপনার বন্ধ এবং খোলার এবং কমান্ড প্রম্প্টের প্রয়োজন হবে যাতে আপনি আপডেট হওয়া পথ সেটিংস লোড করতে পারেন।

এখন এই আদেশটি চালান:

কীটল-এক্সপোর্টসর্ট -ালিয়াস অ্যান্ড্রয়েডব্যাগকি -কিস্টোর "সি: \ ব্যবহারকারীরা \ ওলডিপো.অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর" | ওপেনসএল sha1-বাইনারি | ওপেনসেল বেস 64

আপনার বিকাশকারী কীটি দেখতে হবে।


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

এটির কোনও গ্যারান্টি নেই যে এই একক ওপেনসেল পদ্ধতিতে হ্যাশকি তৈরির কাজ করবে। যদি এটি আমার পক্ষে কাজ না করে। তবে আমার সমস্যা সমাধানের জন্য আমাকে দিকনির্দেশনা দেওয়ার জন্য ধন্যবাদ thanks

গ্যারান্টেড সলিউশন: আপনাকে আলাদা কমান্ডে পুরো কমান্ডটি ভাঙ্গতে হবে এবং ফাইলের প্রতিটি নির্বাহের আউটপুট লিখতে হবে।

আপনি নিম্নলিখিত লিঙ্ক থেকে সহায়তা নিতে পারেন:

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

উপভোগ করুন :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.