কীভাবে অ্যান্ড্রয়েড ফেসবুক কী হ্যাশ তৈরি করবেন?


179

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


আপনি যদি সর্বশেষতম ফেসবুক এসডিকে ব্যবহার করছেন এবং আপনি যদি নিজের ফেসবুক এপি নিখুঁতভাবে স্থাপন করেন তবে লগইন করার সময় আপনি ফেসবুকে লগইনে ক্লিক করেন তবে আপনার লগকটে হ্যাশ কীটি মুদ্রিত হয় ..
মেহুল রণপাড়া

আপনার স্থানীয় কম্পিউটারে আপনার কী হ্যাশ তৈরি করতে, অ্যান্ড্রয়েড ডিবাগ কীস্টোরের বিপরীতে জাভার কীটোল ইউটিলিটি (যা আপনার কনসোলের পথে হওয়া উচিত) চালান। এটি ডিফল্টরূপে আপনার বাড়িতে .অ্যান্ড্রয়েড ডিরেক্টরি)। ওএস এক্স-এ, চালনা করুন: কীটোল-এক্সপোর্টসার্ট-আলিয়াস অ্যান্ড্রয়েডব্যাগকি -কিস্টোর ~ / .অ্যান্ড্রয়েড / ডিবাগ.কিস্টোর | ওপেনসএল sha1-বাইনারি | উইন্ডোজে ওপেনএসএল বেস 64, ব্যবহার করুন: - কীটোল-এক্সপোর্টসর্ট -আলিউডেডবুগকি -কিস্টোর% হোমপথ% and। অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর | ওপেনসএল sha1-বাইনারি | ওপেনসেল বেস 64
রাকেশ

কেউ কেন একটি ডিবাগ কী তৈরি করতে চান?
অ্যান্ডার্স লিন্ডন

আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

উত্তর:


241

এখানেই সব পাবেন আপনি যা করতে চান -

কোড এক্সট্র্যাক্ট থেকে ওপেনএসএল ডাউনলোড করুন । সি: / এ ওপেনএসএসএল একটি ফোল্ডার তৈরি করুন এবং এখানে নিষ্কাশিত কোডটি অনুলিপি করুন।

ডিবাগ.কিস্টোর ফাইল পাথ সনাক্ত করুন। যদি আপনি না পেয়ে থাকেন তবে সি: / এ অনুসন্ধান করুন এবং পরবর্তী পদক্ষেপে কমান্ডের পাথটি ব্যবহার করুন।

আপনার keytool.exe পাথ সনাক্ত করুন এবং সেই দির / ইন কমান্ড প্রম্পটে যান এবং 1 লাইনটিতে এই কমান্ডটি চালান-

$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

এটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে, অ্যান্ড্রয়েড রাখুন। আপনি একটি কী-হ্যাশ পাবেন


যখন এটি একটি পাসওয়ার্ড চাইবে আমি কি চাই কিছু রাখতে পারি?
সোমবার

5
@ ম্যাক্স, ডিফল্ট পাসওয়ার্ডটি android
jamapag

2
কী হ্যাশ কোনও স্টোর থাকা কী হ্যাশ অ্যান্ড্রয়েডের সাথে মেলে না, কাজ করছে না
বোলদিজার পল

1
আপনার স্টুডিও থেকে বিল্ড -> বিল্ড এপিকে গিয়ে প্রথমে একটি কীস্টোর তৈরি করুন। একটি নাম এবং পাসওয়ার্ড ইত্যাদি সরবরাহ করুন এটি সহজেই অ্যাক্সেসযোগ্য ফোল্ডারে একটি .jks ফাইল হিসাবে সংরক্ষণ করুন। এখন পাথটি অনুলিপি করুন এবং উপরে বর্ণিত উত্তরে সেই পাথটি প্রতিস্থাপন করে কী তৈরি করুন।
বাগিড্রয়েড

1
এটি আমাকে একটি ত্রুটি দেখায়: "... কেবলমাত্র পাইপলাইনের প্রথম উপাদান হিসাবে এক্সপ্রেশনগুলি অনুমোদিত। লাইনে: 1 চর: 184 ... এক্সপ্রেশন বা বিবৃতিতে অপ্রত্যাশিত টোকেন 'শ 1' ... একটি পাইপলাইন প্রথম উপাদান ... অপ্রত্যাশিত টোকেন অভিব্যক্তি বা বিবৃতিতে 'করুন Base64- + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + + FullyQualifiedErrorId।। ExpressionsMustBeFirstInPipeline "
Android বিকাশকারী

172

লিনাক্স এবং ম্যাকের জন্য

টার্মিনাল খুলুন:

ডিবাগ বিল্ডের জন্য

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

আপনি পাবেন debug.keystore ".android" ফোল্ডারে। এটি অনুলিপি করুন এবং ডেস্কটপে পেস্ট করুন এবং উপরের কমান্ডটি চালান।

বিল্ড মুক্তির জন্য

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

দ্রষ্টব্য: উভয় ক্ষেত্রে এটি একটি পাসওয়ার্ড চেয়েছে তা নিশ্চিত করুন। যদি এটি পাসওয়ার্ড না জিজ্ঞাসা করে তবে এর অর্থ হ'ল কমান্ডটিতে কিছু ভুল। ডিবাগ.কিস্টোরের পাসওয়ার্ড হ'ল " অ্যান্ড্রয়েড " এবং মুক্তির জন্য আপনাকে কীস্টোর তৈরি করার সময় সেট করা পাসওয়ার্ডটি প্রবেশ করতে হবে ।


3
পরিষ্কার করার জন্য, পাসওয়ার্ডটি খালি। জিজ্ঞাসা করা হলে কেবল <enter> চাপুন।
টম রেডম্যান

আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

1
এই দ্রষ্টব্য: "দ্রষ্টব্য: উভয় ক্ষেত্রেই এটি একটি পাসওয়ার্ড চেয়েছে কিনা তা নিশ্চিত করুন it সমস্যাটি সমাধান করার জন্য প্রয়োজনীয় ছিল
ব্লেনো সিলভা

আমার জীবন বাঁচানোর জন্য তোমাকে ধন্যবাদ. আমি পুরোপুরি কীস্টোরের পাসওয়ার্ডের জন্য আমার ম্যাক পাসওয়ার্ডটি টাইপ করছি এবং আমি বুঝতে পেরেছিলাম যে এটি ভুল ছিল
লাকি অ্যাঞ্জেলো

এমনকি পাসওয়ার্ড চাওয়ার অর্থ এই নয় যে সমস্ত কিছু ঠিক আছে (ভুল পাসওয়ার্ড, ভুল কী ওরফে)। keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>প্রথমে একা দৌড়াও , সবকিছু ঠিক আছে কিনা তা দেখতে। এছাড়াও, যখন পাইপ করা হয়, কীটোলটি ইন্টারঅ্যাক্টিভ মোডে থাকে এবং আপনি যখন ইনপুট করেন তখন প্লেইনটিকে সরল পাঠ্যে দেখান। সুতরাং আপনি আরও একটি ছোট স্ক্রিপ্ট লিখুন যা পৃথকভাবে কমান্ডগুলি চালায়।
পিয়েরে

97

দয়া করে এটি চেষ্টা করুন:

public static void printHashKey(Context pContext) {
        try {
            PackageInfo info = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String hashKey = new String(Base64.encode(md.digest(), 0));
                Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
            }
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "printHashKey()", e);
        } catch (Exception e) {
            Log.e(TAG, "printHashKey()", e);
        }
    }

আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

এটি যাবার উপায়
টিনটিনাবুলেটর জিয়া

1
এটি কাজ করে, যদি আপনি pContext.getPackageInfo কল করেন। বা কেবল এটি কোনও ফাংশন থেকে সরিয়ে ফেলুন এবং যেকোন ক্রিয়াকলাপের অনক্রিট এ কল করুন।
ডিপিড্রেনা

1
। এটি এখন getPackageManager () getPackageInfo ([আপনার-PACKAGE_NAME], PackageManager.GET_SIGNATURES) মনে করা হয়
পর্যন্ত

@ অপূর্ব আপনি এর পরে কোনও ব্যবহার না হওয়ার ক্ষেত্রে এটিকে অ্যান্ড্রয়েড শেয়ারডপ্রিফারেন্সিতে রাখতে পারেন।
ম্যাডি

49

ওপেনএসএসএল: আপনার এটি ইনস্টল করতে হবে যদি এটি আপনার অপারেটিং সিস্টেমের সাথে ইনস্টল না করে (যেমন উইন্ডোজ এটির আগে থেকে ইনস্টল না করে) । আপনার ওএসের উপর নির্ভর করে কীভাবে এটি ইনস্টল করবেন (উইন্ডোজের জন্য কোডার_ফোর্ড_লাইফ 22 দ্বারা সরবরাহিত লিঙ্কটি পরীক্ষা করুন )।

চারপাশে ঝাঁকুনি না দেওয়া সবচেয়ে সহজ উপায় হ'ল আপনি উইন্ডোজ এ থাকলে সেই ওপেনএসএল.এক্সই বাইনারিটিকে আপনার কীটল পথে অনুলিপি করছেন। আপনি যদি এটি না করতে চান তবে আপনাকে এটি আপনার PATHপরিবেশ পরিবর্তনশীলতে যুক্ত করতে হবে । তারপরে ডক্সে প্রদত্ত কমান্ডটি কার্যকর করুন।

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

মনে রাখবেন যে -keystoreআপনার ডিবাগ কীস্টোরটিতে পয়েন্ট দেওয়ার পরে যুক্তি । এই অবস্থানটি আপনার অপারেটিং সিস্টেমের উপরও নির্ভর করে। নিম্নলিখিত অবস্থানগুলির মধ্যে একটিতে থাকা উচিত:

  • উইন্ডোজ ভিস্তা বা 7 - সি: \ ব্যবহারকারী \ .অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর
  • উইন্ডোজ এক্সপি - সি: \ ডকুমেন্টস এবং সেটিংস and .অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর
  • ওএস এক্স এবং লিনাক্স - ~ / .android / debug.keystore

আপনি যদি সবকিছু ঠিকঠাক করেন তবে আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ করা উচিত। যে androidডিবাগ সার্টিফিকেটের জন্য। পাসওয়ার্ডটি সঠিক হলে কনসোল একটি হ্যাশ (কিছুটা এলোমেলো অক্ষর এবং সংখ্যা) মুদ্রণ করে।

এটি নিন এবং android key hashআপনার অ্যাপ্লিকেশনটির পছন্দ হিসাবে ফেসবুকে এটিকে ফিল্ডে অনুলিপি করুন। সেখানে যাওয়ার জন্য, বিকাশকারীদের উপর যান Edit settingsbook এর পরে, পরিবর্তনগুলি কার্যকর না হওয়া পর্যন্ত কয়েক মিনিট অপেক্ষা করুন।


আমি এটি সেন্টিমিডে চালিয়েছি এবং এটি একটি দীর্ঘ চিহ্নের অক্ষরটিকে আউটপুট দিয়ে একটি হ্যাশের মতো দেখতে পাওয়া যায় যা শেষ হয় = চিহ্ন দিয়ে তবে কিছুই নেই $ কীটোল-এক্সপোর্টসর্ট-অ্যাল্রয়েড ডেগুগি-কিস্টোর "সি: \ ব্যবহারকারীগণ \ .অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর" | "সি: \ ওপেনএসএসএল \ বিন \ ওপেনএসএল" শা 1 -বাইনারি | "সি: \ ওপেনএসএসএল \ বিন \
ওপেনসেল

সঠিক মনে হচ্ছে। এটি কেবল আমার মেশিনে পরীক্ষা করা হয়েছিল, আমার জন্য ২৮ টি অক্ষর দীর্ঘ ছিল, কেবল আপনাকে ধারণা দেওয়ার জন্য। এখন শুধু এটি অনুলিপি করুন এবং আপনি ভাল। :)

যদিও আমি পার্স অ্যান্ড্রয়েড ব্যবহার করতে অনুরোধ জানাই নি। দুঃখিত আমি কি ধীর হয়ে যাচ্ছি?
সোমবার

সত্যি কথা বলতে, আমি নিশ্চিত নই কেন আপনি কেন এটির জন্য অনুরোধ করলেন না। তবে এটি আমার কাছে সঠিক মনে হচ্ছে। মানে, যদি আপনি কিছু ভুল করে থাকেন তবে তার পরিবর্তে একটি ত্রুটি বার্তা থাকা উচিত should কেবল এটির অনুলিপি করুন এবং দেখুন এটি কার্যকর হয় কিনা। আপনি গ্রাফ এপিআই এক্সপ্লোরার দিয়ে গ্রাফের কয়েকটি প্রশ্নের পরীক্ষা করতে পারেন । উপরে আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন এবং দেখুন আপনি বৈধ ফলাফল পান কিনা। যদি কিছু ভুল হয় তবে এটিতে একটি ত্রুটি করা উচিত। সম্পাদনা করুন: এবং মৌমাছি স্লো করার সাথে কোনও ভুল নেই। আমরা তাড়াহুড়ো করছি না। :)

23

আপনার স্থানীয় কম্পিউটারে আপনার কী হ্যাশ তৈরি করতে, অ্যান্ড্রয়েড ডিবাগ কীস্টোরের বিপরীতে জাভার কীটোল ইউটিলিটি (যা আপনার কনসোলের পথে হওয়া উচিত) চালান। এটি ডিফল্টরূপে আপনার বাড়িতে .অ্যান্ড্রয়েড ডিরেক্টরি)। ওএস এক্সে, চালান:

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

উইন্ডোজে, ব্যবহার করুন: -

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

আশা করি এটা তোমাকে সাহায্য করবে

রেফ - ডেভেলপার ফেসবুক সাইট


আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

19

এখানে সম্পূর্ণ বিবরণ (উইন্ডোজ জন্য)

1. ডাউনলোড OpenSSL পারেন 3 য় বা 4 র্থ (ঙ সাথে আরও ভাল কাজ হবে না) আপনার সিস্টেম 32bit বা 64bit উপর ভিত্তি করে।

2. সি ডিরেক্টরিতে ডাউনলোড করা জিপটি বের করুন

৩. নিষ্ক্রিয় ফোল্ডারটি বিন পর্যন্ত আপ খুলুন এবং পথটি অনুলিপি করুন, এটি এমন কিছু জিনিস হওয়া উচিত C:\openssl-0.9.8k_X64\bin\openssl (শেষে at ওপেনসেল যুক্ত করুন)

৪. (জেডকের বিন ফোল্ডারের পথটি পান, যদি আপনি কীভাবে জানেন তবে এটি এড়িয়ে যান)।

অ্যান্ড্রয়েড স্টুডিও ~ ফাইল ~ প্রকল্পের কাঠামো (ctrl + Alt + shift + s) খুলুন, বাম পাশের প্যানেলে SDK অবস্থান নির্বাচন করুন, জেডিকে অবস্থানটি অনুলিপি করুন এবং এতে / বিন যোগ করুন

তাই চূড়ান্ত জেডি কে লোকেশনটি হবে C:\Program Files\Android\Android Studio\jre\bin

আমরা জেডি কে অবস্থান পেতে এই পদ্ধতিটি অনুসরণ করছি কারণ আপনি হয়ত আমার মতো এমবেডেড জেডিকে ব্যবহার করতে পারেন

এখানে চিত্র বর্ণনা লিখুন

এখন আপনার ওপেনএসএল অবস্থান এবং জেডিকে অবস্থান রয়েছে

৫. এখন আমাদের ডিবাগ কীস্টোরের অবস্থানের প্রয়োজন, সেই ওপেন সি ~> ব্যবহারকারীদের Your> আপনার ব্যবহারকারী নাম ~>।

C:\Users\Redman\.android\debug.keystore

Now. এখন ওপেন কমান্ড প্রম্পট এবং টাইপ কমান্ড

cd YourJDKLocationFromStep4  

আমার ক্ষেত্রে

 cd "C:\Program Files\Android\Android Studio\jre\bin"

7. এখন নিম্নলিখিত কমান্ডটি নির্মাণ করুন

keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

আমার ক্ষেত্রে কমান্ডটি দেখতে হবে

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

এখন কমান্ড প্রম্পটে এই কমান্ডটি প্রবেশ করান, আপনি যদি কখনও সঠিক কিছু করেন তবে আপনাকে পাসওয়ার্ডের জন্য জিজ্ঞাসা করা হবে (পাসওয়ার্ডটি অ্যান্ড্রয়েড)

Enter keystore password:  android

এটি হ'ল, আপনাকে কী হ্যাশ দেওয়া হবে, কেবল এটি অনুলিপি করুন এবং এটি ব্যবহার করুন

স্বাক্ষরিত কীহ্যাশের জন্য নিম্নলিখিত কমান্ডটি তৈরি করুন

keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

আপনার কীস্টোর পাসওয়ার্ড লিখুন, আপনি যদি ভুল পাসওয়ার্ড প্রবেশ করেন তবে এটি ভুল কীহ্যাশ দেবে

বিঃদ্রঃ

যদি কোনও কারণে যদি এটি কোনও পথে ত্রুটি দেয় তবে সেই পথটি ডাবল কোটে মুড়ে দিন Windows উইন্ডোজ পাওয়ার শেলও আমার পক্ষে ভাল কাজ করছে না, আমি গিট ব্যাশ ব্যবহার করেছি (বা কমান্ড প্রম্পট ব্যবহার করি)।

উদাহরণ

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

1
আপনাকে অনেক ধন্যবাদ, এটি শুরুর জন্য একটি খুব বিস্তারিত গাইড!
পাবলো কুইম

@ তামিম প্রডাকশন ওপেনসেলের কে সংস্করণ সহ একই পদ্ধতি ব্যবহার করে দেখুন এবং কোড. google.com/archive/p/openssl-for-windows/downloads দেখুন
মনোহর রেড্ডি

@ তামিমপ্রডাকশন আপনি যদি ভুল পাসওয়ার্ড প্রবেশ করেন তবে এটি ভুল কীহ্যাশ ফিরে আসবে। কীস্টোর মোছার পরেও আপনি আবার এপিপি তৈরি করেছেন?
মনোহর রেড্ডি

@ তামিমপ্রডাকশন ফেসবুক অ্যাপ্লিকেশন ডাউনলোড এবং ইনস্টল করুন, ফেসবুক অ্যাপ্লিকেশনটিতে লগইন করুন। আপনার অ্যাপ্লিকেশনটি খুলুন এবং ফেসবুক লগইন করুন। এটি আপনাকে ফেসবুক অ্যাপ্লিকেশনটিতে কী হ্যাশ দেবে, এটি আপনার মতো কিনা তা পরীক্ষা করে দেখুন
মনোহর রেড্ডি


18

হেক্স ম্যাপ কীটি বেস 64 এ রূপান্তর করতে আপনি ব্রাউজার কনসোলে কেবল এক লাইন জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন। সর্বশেষ ব্রাউজারে কনসোলটি খুলুন (উইন্ডোজ এফ 12) এবং কোডটি পেস্ট করুন এবং গুগল যে প্লেগুলি সরবরাহ করে SHA-1, SHA-256হেক্স ম্যাপটি প্রতিস্থাপন করুন Release Managment> App signing:

> btoa('a7:77:d9:20:c8:01:dd:fa:2c:3b:db:b2:ef:c5:5a:1d:ae:f7:28:6f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "p3fZIMgB3fosO9uy78VaHa73KG8="

1
আপনি একটি জীবনদাতা, ধন্যবাদ
ইউসুফ আদিয়েমো

এসএএএ -৩ ছিল এক।
ট্র্যাভো

16

একটি সংক্ষিপ্ত সমাধানও আছে। আপনার অ্যাপ্লিকেশনটিতে এটি চালান:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));

এফবি এসডিকে দরকার হয় না এমন দীর্ঘতর ( এখানে সমাধানের ভিত্তিতে ):

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

ফলাফলটি "=" দিয়ে শেষ হওয়া উচিত।


1
আমি লক্ষ্য করেছি যে আমার কী হ্যাশটিতে একটি '_' রয়েছে যা এফবি দ্বারা অনুমোদিত নয়। হ্যাশটি ব্যবহার করার জন্য আমাকে এটি একটি '/' তে পরিবর্তন করতে হয়েছিল।
অ্যাবেল্লিম হাসৌনা

ফেসবুকের ফাংশনটি আমার চাবিটি ফিরিয়ে দিয়েছে যেহেতু -AAAAAAAA_AAAAAA-AAAAAAAAAAএটি ফেসবুকের দ্বারা অনুমোদিত নয়, প্রিন্ট হ্যাশকি একটি বৈধ ফর্ম্যাটে কীটি ফিরিয়ে দিয়েছে+AAAAAAAA/AAAAAA+AAAAAAAAAA=
গ্রাফরলভ

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

9

উইন্ডোজ জন্য:

  1. কমান্ড প্রম্পট ওপেন কমান্ড নীচে পেস্ট করুন

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

  1. পাসওয়ার্ড প্রবেশ করুন: অ্যান্ড্রয়েড -> এন্টার চাপুন

  2. উত্পন্ন হ্যাশ কী অনুলিপি করুন -> আপনার বিকাশকারী অ্যাকাউন্ট দিয়ে ফেসবুক লগইন করুন

  3. আপনার ফেসবুক অ্যাপে যান -> সেটিংস -> "কী হ্যাশ" বিকল্পে হ্যাশ কী আটকান -> পরিবর্তনগুলি সংরক্ষণ করুন।

  4. এখন আপনার অ্যান্ড্রয়েড অ্যাপটিকে ফেসবুক লগ-ইন / শেয়ার ইত্যাদি দিয়ে পরীক্ষা করুন


আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

হাই, আমি আমার মূল ক্রিয়াকলাপে কোডের মাধ্যমে হ্যাশ কী উত্পন্ন করতে সক্ষম হচ্ছি তবে উত্পন্ন হ্যাশ কীটি কেবলমাত্র একক ডিভাইসে কাজ করে। আমি যখন অন্য ডিভাইসে একই এপিকে ইনস্টল করি এবং চালিত করি যে এটিতে অবৈধ হ্যাশ কী ত্রুটি দেখাচ্ছে। আমি কি অনুপস্থিত কিছু আছে?
দীপক

8

যেহেতু এপিআই 26, আপনি ফেসবুক এসডিকে কোনও প্রকার ছাড়াই কোটলিনে নিম্নলিখিত কোডটি ব্যবহার করে আপনার হ্যাশ কীগুলি তৈরি করতে পারেন ।

fun generateSSHKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}

এখানে চিত্র বর্ণনা লিখুন


আপনার অর্থ আমি আপনার কোডটি রেখেছি class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
27:30 এ্যাসেডফেসডেফ

6

এটিই আমি পেয়েছি আমার:

private class SessionStatusCallback implements Session.StatusCallback {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if (exception != null) {
                new AlertDialog.Builder(FriendActivity.this)
                        .setTitle(R.string.login_failed_dialog_title)
                        .setMessage(exception.getMessage())
                        .setPositiveButton(R.string.ok_button, null)
                        .show();
            }

সুতরাং যখন আপনি কীটি ছাড়াই প্রবেশ করার চেষ্টা করছেন তখন একটি ব্যতিক্রম ঘটবে। ফেসবুক এই ব্যতিক্রমের মধ্যে রাইটের কীটি রাখে। আপনাকে যা করতে হবে তা হ'ল এটি অনুলিপি করা।


আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

6

আপনি যদি ইতিমধ্যে প্লে স্টোরটিতে অ্যাপ্লিকেশন আপলোড করে থাকেন তবে আপনি হ্যাশ কীটি নিম্নলিখিতভাবে তৈরি করতে পারেন:

1) এখানে রিলিজ ম্যানেজমেন্ট যান

2) রিলিজ ম্যানেজমেন্ট নির্বাচন করুন -> অ্যাপ্লিকেশন স্বাক্ষর

3) আপনি SHA1 কীটি হেক্স ফর্ম্যাট অ্যাপ্লিকেশন স্বাক্ষরের শংসাপত্রে দেখতে পাবেন।


৪) SHA1 কে হেক্স ফর্ম্যাটে অনুলিপি করুন এবং এটিকে বেস 6464 ফর্ম্যাটে রূপান্তর করুন, আপনি এই লিঙ্কটি SHA1: হেক্সের অংশ ছাড়াই এটি ব্যবহার করতে পারেন ।


5) ফেসবুক বিকাশকারী কনসোলে যান এবং সেটিংস -> বেসিক -> কী হ্যাশগুলিতে কীটি (বেস 64 তে রূপান্তর করার পরে) যুক্ত করুন।



3

ওপেন এসএসএল ডাউনলোড করুন :

তারপরে পাথ সিস্টেমের ভেরিয়েবলগুলিতে ওপেনসেল \ বিন যুক্ত করুন:

আমার কম্পিউটার -> বৈশিষ্ট্য -> উন্নত কনফিগারেশন -> অ্যাডভান্সড -> সিস্টেম ভেরিয়েবল -> সিস্টেম ভেরিয়েবলের অধীনে পাথ সন্ধান করে এবং এটির পরিণতিতে যুক্ত করুন:; আপনার ফুলওপেনএসএসএলডির \ বিন

এখন আপনার jdk \ বিন ফোল্ডার সি: \ প্রোগ্রাম ফাইলগুলি জাভা \ jdk1.8.0_40 \ বিন (উইন্ডোতে শিফট ধরে এবং ডান ক্লিক -> ওপেন কমান্ড লাইন এখানে) একটি কমান্ড লাইন খুলুন এবং ব্যবহার করুন:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

এবং পাসওয়ার্ড দেওয়ার পরে এটি উত্পন্ন 28 টি দৈর্ঘ্যের নম্বরটি অনুলিপি করুন।


আমি দেখতে পেলাম না যে মূল উত্তরটিতে ইতিমধ্যে ওপেনএসএল লিঙ্ক রয়েছে। এটি সিস্টেম ভেরিয়েবলের জন্য এখনও দরকারী।
6:30 এ সাগিত

আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

অবশ্যই, আপনি কি নিশ্চিতরূপে 28 দৈর্ঘ্যের সংখ্যাটি তৈরি করেছেন? যদি তা হয়, তবে এখন আপনাকে ফেসবুক বিকাশকারী (গুগলে অনুসন্ধান) সাইটে যেতে হবে এবং সেটিংসের অধীনে একটি নতুন অ্যাপ্লিকেশন তৈরি করতে হবে, আপনি একটি নতুন অ্যান্ড্রয়েড অ্যাপ্লিকেশন যুক্ত করতে পারেন, সেখানে আপনি আপনার কীআশ এবং আপনার ক্রিয়াকলাপের নামটি আটকান (যেখানে লগইন কোডটি অবস্থিত) )। ফেসবুকে এটি সম্পর্কে একটি টিউটোরিয়ালও রয়েছে
সাগিত করে

দ্রুত উত্তরের জন্য ধন্যবাদ, আমি শীঘ্রই এটি চেষ্টা করব
অপূর্ব

3

এটি আপনার অ্যাপ্লিকেশনটিতে চালান:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

অথবা এটা:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

এবং তারপরে লগগুলি দেখুন।

ফলাফলটি "=" দিয়ে শেষ হওয়া উচিত।

সমাধান এখানে এবং এখানে ভিত্তি করে ।


3

সহজ উপায় -> ওপেনসেল ইনস্টল করবেন না -> গিট ব্যবহার করুন!

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

ডিফল্ট পাসওয়ার্ডটি "অ্যান্ড্রয়েড"

আমাদের বেশিরভাগ গিট বাশ ইনস্টল করেছেন তাই এটি আমার প্রিয় উপায় way


3

এটি নতুনদেরও সহায়তা করবে।

কেবলমাত্র @ কোডার_ফোর্ড_লাইফ 22 এর উত্তরে আরও বিশদ যুক্ত করা হচ্ছে।

যদি এই উত্তর আপনাকে সহায়তা করতে ভুলবেন না তবে এটি আমাদের অনুপ্রাণিত করে।

এর জন্য আপনাকে অবশ্যই অ্যাপের কীস্টোর ফাইলের পাসওয়ার্ড এবং পাসওয়ার্ডটি অবশ্যই জানতে হবে

এই উদাহরণটির জন্য কীটি "c: \ keystorekey \ new.jks" এ সঞ্চিত আছে তা বিবেচনা করুন

1. এই পৃষ্ঠাটি খুলুন https://code.google.com/archive / পি / উইন্ডোজ / ডাউনলোডের জন্য ওপেনসেল

২. আপনার উইন্ডোজ ওএস অনুযায়ী 32 বা 64 বিট জিপ ফাইল ডাউনলোড করুন।

৩. ডাউনলোড করা ফাইলটি বের করুন যেখানে আপনি চান এবং পথটি মনে রাখবেন।

৪. এই উদাহরণের জন্য আমরা বিবেচনা করি যে আপনি ডাউনলোড ফোল্ডারে ফোল্ডারটি বের করেছেন। ৫. এখন কীবোর্ড টিপুন উইন্ডোজ + আর বোতামে। This. এটি রান বাক্সটি খুলবে।

সুতরাং ফাইলের ঠিকানা "সি: \ ব্যবহারকারী \ 0 \ ডাউনলোডগুলি \ ওপেনসেল-0.9.8e_X64 \ বিন \ ওপেনসেল.এক্সই" হবে;





Cm. সেন্টিমিডি টাইপ করুন এবং সিটিআরএল + শিফট + এন্টার টিপুন

৮. এটি প্রশাসক হিসাবে কমান্ড প্রম্পট খুলবে।

৯. এখানে জাভাটির বিন ফোল্ডারে নেভিগেট করুন:

আপনি অ্যান্ড্রয়েড স্টুডিওর সরবরাহিত জেরি ব্যবহার করলে আপনি নীচের মতো পথটি পাবেন:
ক। অ্যান্ড্রয়েড স্টুডিও খুলুন
খ। ফাইল-> প্রকল্প কাঠামো
গ। বাম ফলকে, 'এসডিকে অবস্থান' ক্লিক করুন
ডি। ডান ফলকে, 'জেডি কে লোকেশন' এর নীচে আপনার জেরের পথ।
ঙ। এই পথের শেষে "\ বিন" যুক্ত করুন "keytool.exe" ফাইল হিসাবে এটি আমাদের ফোল্ডারের ভিতরে রয়েছে।
এই উদাহরণের জন্য আমি বিবেচনা করি,
"সি: \ প্রোগ্রাম ফাইলস \ জাভা \ জেআর -10.0.2 \ বিন"
যদি আপনি 32 বিট জাভা ইনস্টল করেন তবে এটি
"সি: \ প্রোগ্রাম ফাইল (x86) \ জাভা \ জের -10.0.2 \ বিন"
১০. এখন উপরোক্ত পাথগুলি কমান্ডটি নিম্নলিখিত হিসাবে কার্যকর করে:

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
  1. আপনাকে পাসওয়ার্ড জিজ্ঞাসা করা হবে, কীস্টোর কী তৈরি করার সময় আপনি যে পাসওয়ার্ড দিয়েছিলেন তা দিন give

    !!!!!! এটি আপনাকে চাবি দেবে

ত্রুটিগুলি: যদি আপনি পান:
---
'কীটোল' কোনও অভ্যন্তরীণ বা বাহ্যিক আদেশ হিসাবে স্বীকৃত নয়
--- এর
অর্থ জাভা অন্য কোথাও ইনস্টল করা আছে।


3

পদক্ষেপ 1-> সি: \ প্রোগ্রাম ফাইল \ জাভা \ jdk1.6.0_43 \ বিন>

পদক্ষেপ 2-> কীটল-তালিকা-ভি -কিস্টোর সি: \ ব্যবহারকারীগণ লিওন \। অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর -ালিয়াস অ্যান্ড্রয়েডব্যাগকি-স্টোরপাস অ্যান্ড্রয়েড -কাইপাস অ্যান্ড্রয়েড

আপনি SHA1 মান পেয়েছেন এই লিঙ্কটিতে ক্লিক করুন এবং আপনার SHA1 মানকে HASH KEY তে রূপান্তর করুন

আমি 100% নিশ্চিত এই লিঙ্কটি আপনাকে সাহায্য করবে



2

আপনি আপনার সমস্ত আঙুলের ছাপগুলি https://console.developers.google.com/projectselector/apis/credentials থেকে পেতে পারেন
এবং কীট্যাশটিতে রূপান্তর করতে এই কোটলিন কোডটি ব্যবহার করুন:

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}

1

https://developers.facebook.com/docs/android/getting-started/

4.19.0 - 25 জানুয়ারী, 2017

ফেসবুক এসডিকে

সংশোধিত

অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে ফেসবুক এসডিকে এখন স্বয়ংক্রিয়ভাবে শুরু হয়। বেশিরভাগ ক্ষেত্রে FacebookSDK.sdkInitialize () এ ম্যানুয়াল কল আর প্রয়োজন হয় না। আরও তথ্যের জন্য আপগ্রেড গাইড দেখুন ।

ডিবাগের জন্য

try {
    PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 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 (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

1

শুধু এই কোড রান আপনার OnCreateView অথবা OnStart Actvity এবং এই ফাংশন রিটার্ন আপনি ডেভেলপমেন্ট কী হ্যাশ

private String generateKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = (MessageDigest.getInstance("SHA"));
            md.update(signature.toByteArray());
            return new String(Base64.encode(md.digest(), 0));
        }
    }catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return "key hash not found";
}

0

আমার ঠিক একই সমস্যা ছিল, আমাকে একটি পাসওয়ার্ড জিজ্ঞাসা করা হয়নি, এবং মনে হচ্ছে কীস্টোর ফাইলটির জন্য আমার ভুল পথ ছিল।

প্রকৃতপক্ষে, কীটোলটি আপনার দ্বারা নির্ধারিত কীস্টোরটি যদি খুঁজে না পায় তবে এটি একটি তৈরি করে এবং আপনাকে ভুল কী প্রদান করবে কারণ এটি সঠিকটি ব্যবহার করছে না।

সাধারণ নিয়মটি হ'ল যদি আপনাকে কোনও পাসওয়ার্ড জিজ্ঞাসা না করা হয় তবে আপনার কাছে ভুল কী উত্পন্ন হচ্ছে।


আমি কী হ্যাশ তৈরি করেছি তবে কীটি কোথায় রাখা উচিত তা আপনি জানেন না, আপনি আমাকে গাইড করবেন? আমি উবুন্টুতে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছি।
অপূর্ব

0

আপনি এই apk ব্যবহার করতে পারেন

1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want

@ এলিনাড এটি চাইনিজ: ডি
আর্মনস্ট্রং


0

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

উপরের এই কমান্ডে 2 টি পরিবর্তনসমূহ 1. প্রদীপ === আপনার সিস্টেমের USERNAME দ্বারা প্রতিস্থাপন করুন 2.C: \ ব্যবহারকারীরা ak দীপক \ এসএসএল === আপনার ওপেন এসএসএল পথটি পুনরায় প্রতিস্থাপন করুন

এই কমান্ডটি চালান এবং এভাবে আউটপুট পান

সি: \ ব্যবহারকারীগণ \ দীপক> কীটল-রফতানিকারী -আল্ড্রয়েডবুগকি-কিস্টোর "সি: \ ব্যবহারকারীগণ e ডি ইপাক.অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর" | "সি: \ ব্যবহারকারীগণ \ দীপক \ এসএসএল \ বিন \ ওপেনসেল" শা 1 -বাইনারি | "সি: \ ব্যবহারকারীগণ \ দীপক \ এসএসএল \ বিন \ ওপেনসেল" বেস key৪ কীস্টোর পাসওয়ার্ড প্রবেশ করান: ****** ga0RGNY ****************** =


0

যদি কারও ওপেনসেল সমস্যা হয়, এই নির্দেশাবলী অনুসরণ করুন:

  1. জিপ উইন্ডোজের জন্য "ওপেনসেল" ডাউনলোড করুন
  2. আপনি যে পথে চান জিপটি বের করুন।
  3. জিপের ভিতরে "বিন" ফোল্ডারের পথ পান path

এটাই

https://sourceforge.net/projects/openssl/files/latest/download

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