অ্যান্ড্রয়েড-ফেসবুক অ্যাপের জন্য কী হ্যাশ


229

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


2
আপনি এই লিঙ্কটি চেক করতে পারেন javatechig.com/2012/12/10/…
নীলাঞ্চল

2
পরীক্ষা এই যারা এখনও ইস্যু সম্মুখীন হচ্ছে জন্য,
Chintan Khetiya

এটি ব্যবহার করে ডিবাগ এবং রিলিজ মোডের জন্য হ্যাশকে তৈরি করুন। stackoverflow.com/questions/7506392/…
ইব্রাহিম

কীগুলি এই ভিডিওটি দেখুন
তাড়াতাড়ি

উত্তর:


310

পদক্ষেপগুলি এখানে-

  1. গুগল কোড থেকে ওপেনএসএল ডাউনলোড করুন (আপনার যদি একটি bit৪ বিট মেশিন থাকে তবে আপনাকে অবশ্যই ওপেনসেল-০.৯.৮ এক্স এক্স 64 ডাউনলোড করতে হবে ) সর্বশেষতম সংস্করণ নয়)

  2. এটি এক্সট্রাক্ট। সি: / এ ওপেনএসএসএল একটি ফোল্ডার তৈরি করুন এবং এখানে তোলা কোডটি অনুলিপি করুন।

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

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

    $ কীটোল-এক্সপোর্টসর্ট-আলিয়াস অ্যান্ড্রয়েডব্যাগকি -কিস্টোর "সি: \ নথি এবং সেটিংস Settings প্রশাসক.অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর" | "সি: \ ওপেনএসএসএল \ বিন \ ওপেনসেল" শা ১-বাইনারি | "সি: \ ওপেনএসএসএল \ বিন \ ওপেনসেল" বেস 64

    • এটি পাসওয়ার্ড চাইবে, অ্যান্ড্রয়েড রাখবে
    • এখানেই শেষ. আপনি একটি কী-হ্যাশ পাবেন

আরও তথ্যের জন্য এখানে যান


5
এই উত্তরটি Win7 x64 এ প্রায় আমার জন্য কাজ করেছে। তবে, ফলাফলযুক্ত এনকোডেড শংসাপত্রটি ভুল ছিল। নীচে ব্রায়ান বেয়ার্ডের উত্তর সঠিক শংসাপত্রের মান উত্পন্ন করবে। আমি অনুমান করছি উইন্ডোতে পাইপিংটি কোনওভাবে অপরাধী is
ওয়াল্ট আর্মার

10
Bit৪ বিট ব্যবহারকারীদের জন্য দ্রষ্টব্য: এটি ওপেনসেল-০.৯.৮ এক্স এক্স version সংস্করণে কাজ করে কেবল ওপেনসেল-০.৯.৮ কে এক্স 64৪
নিকোলা পেলুচেটি

আমি আমার সিস্টেমের জন্য ওপেনএসএল-0.9.8e এক্স 64 ডাউনলোড করেছি এবং এটি বের করেছি t এতে কিছু তথ্য সহ একটি ফাইল ছাড়া কিছুই থাকে না। আরও জানতে আমাকে সাহায্য করুন।
রবিকিরণ

2
কমান্ডটি উইন্ডোজ সিস্টেমে জাভা বিন ফোল্ডারে চালিত করা উচিত।
এন্ট্রোমেট

1
@ হানিশশর্মা এটিকে ছেড়ে যাওয়ার চেষ্টা করুন $
নিষিদ্ধ-জিওঞ্জিনিয়ারিং

241

[2020 সম্পাদনা করুন] -> এখন আমি এখানে পুরোপুরি উত্তরটি সুপারিশ করছি , অ্যান্ড্রয়েড স্টুডিওর সাহায্যে সহজতর উপায়, দ্রুত এবং কোনও কোড রাইভ করার দরকার নেই - নীচের অংশটি গ্রহনের দিনগুলিতে ফিরে এসেছিল :) -।

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

PackageInfo info;
try {
    info = getPackageManager().getPackageInfo("com.you.name", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md;
        md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String something = new String(Base64.encode(md.digest(), 0));
        //String something = new String(Base64.encodeBytes(md.digest()));
        Log.e("hash key", something);
    }
} catch (NameNotFoundException e1) {
    Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
    Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
    Log.e("exception", e.toString());
}

কীটি জানার পরে আপনি কোডটি মুছতে পারেন;)


27
ছেলেরা, যত্ন নিন, এপিপি তৈরির পরে কী হ্যাশ বদলানো হয়েছে! কারণ এই কোডটি ব্যবহার করে আপনি ডিবাগ কীস্টোর হ্যাশ পাবেন, কিন্তু এপিপি তৈরি করার সময় এটি অন্য একটি হ্যাশ, এমুলেটরটিতে ইউআর অ্যাপিকে চেষ্টা করার পরে লগ থেকে এটি ক্যাপচার করতে হবে, তারপরে কোডটি মুছুন এবং এই লগ ছাড়াই আবার রফতানি করুন :) - আমি জানি এটি একটি ঝামেলা: ডি তবে আমার জন্য এটি কীটোলের চেয়ে সহজ, সৌভাগ্য;)
বাসেম উইসা

4
ওপেনসএসএল সর্বদা সমস্যা তৈরি করে। এই পদ্ধতিটি সেরা। কেবল একটি ফাঁকা অ্যাপ্লিকেশন তৈরি করুন এবং কীটি মুদ্রিত করুন, এটি ব্যবহার করুন। ধন্যবাদ মানুষ!!
আনহসির্ক দাসার্প

1
এটি এখন পর্যন্ত সবচেয়ে সহজ সমাধান। keytoolকমান্ডটি ব্যবহার করে আমি ভুল কী হ্যাশ পাচ্ছিলাম (কেন আমি জানিনা, তদন্ত করার মতো যথেষ্ট যত্ন নিইনি) idea এটি ডিবাগটি পেতে এবং কী হ্যাশগুলি প্রকাশ করতে আক্ষরিক অর্থে 5 মিনিট সময় নিয়েছিল। +1
ক্রিস কেরিফাইস

1
হ্যাঁ সেবাস্তিয়ান, আপনাকে কেবলমাত্র একটি ডিভাইসে স্বাক্ষরিত এপিকে ইনস্টল করতে হবে এটি এন্ড্রয়েড স্টুডিওতে সংযুক্ত করতে এবং লগ বিড়ালটি পরীক্ষা করতে হবে, বা আপনি ইউআইএর একটি সম্পাদনাতে হ্যাশটি দেখিয়ে কপি করতে পারেন, হ্যাঁ হ্যাশ এই কোডটি এর সাথে কাজ করে স্বাক্ষরিত এপি কে :)
বাসেম উইস

1
কীটোল ব্যবহার করা এমন জগাখিচুড়ি এটি সত্যিই সহজ
তাবিশ

135

আমি উইন্ডোজ এবং ম্যাক ওএস এক্স এর জন্য একটি ছোট সরঞ্জাম তৈরি করেছি Just কী-স্টোর ফাইলটি ফেলে দিন এবং হ্যাশ কীটি পান।

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

এটি দেখুন, উইন্ডোজ সংস্করণটি ডাউনলোড করুন বা ম্যাক ওএস এক্স সংস্করণটি ডাউনলোড করুন (ডেভ-হোস্ট কখনও কখনও ডাউন হতে পারে ... তাই লিঙ্কটি যদি ভাঙা হয় তবে আমাকে প্রধানমন্ত্রী করুন এবং আমি এটি ঠিক করব)।

আমি আশা করি যে আপনাকে সাহায্য ...

31 ডিসেম্বর, 2014 - সম্পাদনা: এএফএইচ-তে হোস্ট পরিবর্তন করা হয়েছে। লিঙ্কগুলি নষ্ট হয়ে গেছে কিনা তা দয়া করে আমাকে জানান

21 নভেম্বর, 2013 - সম্পাদনা:

ব্যবহারকারীদের অনুরোধ হিসাবে, আমি একটি ডিফল্ট কীস্টোরের অবস্থান এবং একটি ডোনেট বোতাম যুক্ত করেছি। যদি আমি আপনাকে সহায়তা করে থাকি তবে এটি নির্দ্বিধায় ব্যবহার করুন । :)

স্ক্রিন শট স্ক্রিন শট 2


1
সেরা। পদ্ধতি। কখনো। দান বোতামটি কোথায়?
অ্যাডাম ভারেগেই

1
@ শাহার 2 কে 5 সত্যিই জানেন না, আবার শুরু করলেন এবং কবজির মতো কাজ করলেন। দুঃখিত
অ্যানারিওন

1
একটি যাদুমন্ত্র মত কাজ করে! ভাগ করে নেওয়ার জন্য ধন্যবাদ :)
বিনয়াক

1
@ সাহার বারশেত আপনাকে ধন্যবাদ। তুমি ঠিক. ডিভহস্ট ডোমেন থেকে ডাউনলোড এবং কোনও সমস্যার মুখোমুখি হয়নি।
মেজরজিক

1
আমি কিছু বুঝতে পারছি না: keytoolকমান্ড লাইনটি ব্যবহারের সাথে তুলনা করে আপনার সরঞ্জাম কেন বিভিন্ন এসএএএ কী দিচ্ছে ? একই কীস্টোর ফাইলটিতে প্রয়োগ করা হলে কি অভিন্ন ফলাফল দেওয়ার কথা নয়?
নাইটফিক্সড

64

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

গুগল থেকে উইন্ডোজ জন্য ওপেনসেল ডাউনলোড করে শুরু করুন।

C:\Users\Me>keytool -exportcert -alias my_key -keystore my.keystore -storepass PASSWORD > mycert.bin

C:\Users\Me>openssl sha1 -binary mycert.bin > sha1.bin

C:\Users\Me>openssl base64 -in sha1.bin -out base64.txt

এই কমান্ডগুলি চালনার পরে বৈধ হ্যাশটি বেস 64.txt ফাইলটিতে সংরক্ষণ করা হয়। এটি ফেসবুকে আপনার অ্যাপ্লিকেশন সেটিংসে অনুলিপি করুন এবং আটকান।


নিখুঁত কাজ করে, অন্য সব কিছু ব্যর্থ হয়েছিল।
অলিভার ডিকসন

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

2
সুতরাং, সংক্ষেপে, উইন্ডোজে, হয় ব্রায়ানের এটি ভেঙে ফেলার কৌশলটি ব্যবহার করুন, বা আপনার কীস্টোর ফাইলটির সাথে সাইগউইন ব্যবহার করুন ডিয়ার: কীটল-এক্সপোর্টসর্ট -ালিয়াস অ্যান্ড্রয়েডব্যাগকি -কিস্টোর ডিবাগ.কিস্টোর | ওপেনসএল sha1-বাইনারি | openssl বেস 64 এটি যদি আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ না করে তবে কীস্টোর ফাইলটি সঠিকভাবে খুঁজে পায়নি।
ববি

আমার জন্য নিখুঁতভাবে কাজ করেছেন। দুর্দান্ত উত্তর।
রন

আপনি যদি ভুল পাসওয়ার্ডের ক্ষেত্রে হ্যাশ পেতে এড়াতে চান তবে ওপেনএসএসএল চালিয়ে যাওয়ার আগে আপনার মাইসার্ট.বিনটি পরীক্ষা করে দেখুন। অন্যথায় আপনি ভুল পাসওয়ার্ড ত্রুটির পাঠ্যটি নিয়ে
বৌদিন

50

এটিই ফেসবুকের অফিসিয়াল পৃষ্ঠায় দেওয়া হয়েছে :

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

এই কমান্ডটি টুকরো টুকরো করুক

  1. জন্য দেখুন "keytool.exe"। আপনি সি: ড্রাইভে এটি অনুসন্ধান করতে পারেন। আপনি এটি খুঁজে পেতে পারেন "java jdk"বা "java jre"। আপনি যদি একাধিক সংস্করণ ইনস্টল করেন তবে যে কোনও চয়ন করুন।

  2. একটি সিএমডি প্রম্পট খুলুন এবং আপনি যে ডিরেক্টরিটি পেয়েছেন সেখানে উপরের ডিরেক্টরিতে যান "keytool.exe"

    "Exe`" টিপুন এবং ফেসবুক পৃষ্ঠায় প্রদত্ত উপরের কমান্ডটি পেস্ট করুন।

  3. আপনি এটি প্রবেশের সময় একটি ত্রুটি পাবেন যে ওপেনএসএসএল ইনপুট আউটপুট কমান্ড হিসাবে স্বীকৃত নয়। সমাধান: ওপেনএসএসএল থেকে "ওপেনসেল" ডাউনলোড করুন (যদি আপনার কাছে 64৪ -বিট মেশিন থাকে তবে আপনাকে অবশ্যই ওপেনসেল-০.৯.৮e এক্স 64৪ ডাউনলোড করতে হবে )। এটি যে কোনও জায়গায় বের করুন এবং সংরক্ষণ করুন ... আমি OpenSSlফোল্ডারে সি: ড্রাইভে এটি সংরক্ষণ করেছি on

  4. উপরের কমান্ডের ওপেনসেলটি প্রতিস্থাপন করুন যেখানে আপনি পাইপের পরে উভয় জায়গায় "সি: \ ওপেনএসএসএল \ বিন \ ওপেনসেল" দিয়ে ওপেনএসএসএলটির একটি ত্রুটি পেয়েছিলেন। "|"

  5. যদি কোনও পাসওয়ার্ডের জন্য অনুরোধ করা হয় তবে প্রবেশ করান android

এবং আপনি আপনার হ্যাশ কী পাবেন। আরও পদক্ষেপের জন্য, আবার ফেসবুক পৃষ্ঠা দেখুন।


32

onCreateআপনার ক্রিয়াকলাপে এই কোডটি যুক্ত করুন , এটি আপনার লগকেটে কীহ্যাশ ট্যাগের অধীনে হ্যাশটি মুদ্রণ করবে

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 (NameNotFoundException e) {

}
catch (NoSuchAlgorithmException e) {

}

আপনি আপনার অ্যাকাউন্টের জন্য একাধিক হ্যাশকি যুক্ত করতে পারেন, তাই আপনি যদি ডিবাগে চলতে থাকেন তবে রিলিজ মোডে এটি আবার চালাতে ভুলবেন না


দুর্দান্ত সমাধান, আমি অনুমান করি যে কোনও এক্সিকিউটেবল স্বাক্ষরবিহীন সংস্করণ থাকা উচিত? স্বাক্ষরবিহীন সংস্করণ কোনও ডিভাইসে ইনস্টল করতে অক্ষম হওয়া উচিত। এই ডিবাগ সংস্করণটি ডিবাগ কীস্টোর সহ স্বাক্ষরিত হয়েছে :)
বেনলেং

26

অ্যান্ড্রয়েড কী হ্যাশ কোড পেতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. উইন্ডোজ জন্য ওপেনএসএসএল ডাউনলোড করুন এখানে করুন
  2. এখন সি ড্রাইভে আনজিপ করুন
  3. একটি সিএমডি প্রম্পট খুলুন
  4. আদর্শ cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. তারপরে কেবল keytool -export -alias myAlias -keystore C:\Users\আপনার ব্যবহারকারীর নাম টাইপ করুন\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
  6. সম্পন্ন

2
দুর্দান্ত উত্তর আপনাকে অনেক ধন্যবাদ.
পালানি কুমার

1
এটি কি ডিবাগ কী বা মুক্তির জন্য?
ইগোরগানাপলস্কি

@ ইগোরগানাপলস্কি পথের পরিবর্তে myKeyStoreআপনার মুক্তির কীটি দিন। উপরের কোডটি ডিবাগ কী-এর জন্য রয়েছে
পল্লবী

17

আমি যে সহজ সমাধানটি পেয়েছি তা হ'ল:

  • লগ বিড়াল খুলুন
  • অ্যান্ড্রয়েড এসডিকে দিয়ে ফেসবুকে অ্যাক্সেস করে দেখুন
  • লগের মতো লাইনটি দেখুন যা দেখতে দেখতে:

    04-24 01:14:08.605: I/System.out(31395): invalid_key:Android key mismatch. 
    Your key "abcdefgHIJKLMN+OPqrstuvwzyz" does not match the allowed keys specified in your
    application settings. Check your application settings at 
    http://www.facebook.com/developers
  • "AbcdefgHIJKLMN + OPqrstuvwzyz" অনুলিপি করুন এবং এটি ফেসবুক অ্যান্ড্রয়েড কী হ্যাশ অঞ্চলে আটকান।


এটি সহজ এবং সর্বাধিক কার্যকর উপায়, কেবল লগইন থেকে এমনকি ওপেনসেল ছাড়াই নিন!
লুকা সি

এটিই আমার একমাত্র কাজের সমাধান! আমি আপনার মতো লগটি দেখতে পাচ্ছি না, তবে আমি লগটিতে এটি দেখেছি KeyHash: XWwXXXXX/5xxxxxxxxxxx=এবং আমাকে সাহায্য করেছি!
খং দিনহ হোয়াং

14

আপনি SHA-1 কী থেকে কী হ্যাশ পেতে পারেন। এটি খুব সহজ আপনার নীচের চিত্রটি প্লে স্টোর থেকে আপনার SHA-1 (স্বাক্ষরিত APK) কী পাওয়া দরকার needএখানে চিত্র বর্ণনা লিখুন

এখন সেই SHA-1 কীটি অনুলিপি করুন এবং এই ওয়েবসাইটে এটি শেষ করুন http://tomeko.net এছাড়াও আপনার কী হ্যাশ পেতে চিত্রের নীচে চেক করুন।

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


1
ধন্যবাদ। আমি ওপেনএসএসএল ব্যবহার করে কী হ্যাশ পাওয়ার চেষ্টা করেছি। এটি আমাকে 1 মিনিটের জন্য নিয়েছে এবং এটি সহজ ছিল।
সবুজ ওয়াই।

1
অনেক ধন্যবাদ! গুগল এখন আমার অ্যাপ্লিকেশনটিতে স্বাক্ষর করায় এটি সমাধান হচ্ছিল (আমি কেবল আপলোড শংসাপত্র / কীস্টোরটি ব্যবহার করি)
হ্যারিসন

13

লিনাক্স ওএস এবং উইন্ডোজ ওএসের জন্য আমি এইভাবে করেছি :

লিনাক্স:

  • ওপেনসেল ডাউনলোড করুন
  • টার্মিনাল খুলুন
  • keytool -exportcert -alias **myaliasname** -keystore **/home/comp-1/Desktop/mykeystore.jks** | openssl sha1 -binary | openssl base64

আপনার প্রয়োজনীয়তা অনুসারে দয়া করে এলিয়াস নাম এবং কীস্টোরটি এর পথ দিয়ে পরিবর্তন করুন ।

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

সুতরাং অবশেষে আপনি রিলিজ হ্যাশকি পাবেন

উইন্ডোজ:

হ্যাশকি মুক্তির পদক্ষেপ :

  • ওপেনসেল ডাউনলোড করুন ( এখান থেকে ডাউনলোড করুন ), আমি bit৪ বিট ওএসের জন্য ডাউনলোড করেছি , আপনি এখানে আরও খুঁজে পেতে পারেন
  • ডাউনলোড করা জিপ ফাইলটি সি: \ এ চালিত করুন only
  • কমান্ড প্রম্পট ওপেন করুন
  • keytool -exportcert -alias **myaliasname** -keystore **"C:\Users\hiren.patel\Desktop\mykeystore.jks"** | "C:\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary | "C:\openssl-0.9.8e_X64\bin\openssl.exe" base64

আপনার প্রয়োজনীয়তা অনুসারে দয়া করে এলিয়াস নাম এবং কীস্টোরটি এর পথ দিয়ে পরিবর্তন করুন ।

বিঃদ্রঃ:

আমি যেখানে ** ** এর মধ্যে চিহ্নিত করেছি সেখানে আপনার বিশদটি লিখুন।

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

সুতরাং অবশেষে আপনি রিলিজ হ্যাশকি পাবেন

সম্পন্ন


এখানে পাসওয়ার্ড কি?
আকাশ বিসরিয়া

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

সফলভাবে উত্পন্ন করার পরে আমি কীটি খুঁজে পাব?
আনন্দ ফাদকে

11
  • উইন্ডোজের জন্য ওপেনএসএসএল ডাউনলোড করুন এখানে আপনি 64 বিবিট এবং 32 বিট পেতে পারেন

  • ডাউনলোড করা ফাইলটি বের করুন

  • সি ড্রাইভে ফোল্ডার নাম ওপেনএসএসএল তৈরি করুন
  • সমস্ত নিষ্ক্রিয় আইটেমগুলিকে ওপেনএসএসএল ফোল্ডারে অনুলিপি করুন (বিন, অন্তর্ভুক্ত, লিব, ওপেনএসএল.এনএফ)
  • অ্যান্ড্রয়েড ডিবাগ কীস্টোর পান, ডিফল্ট অবস্থান হবে

সি: \ ব্যবহারকারী \ USERNAME \ .android \ debug.keystore

  • এখন আপনার কমান্ড প্রম্পট পেতে এবং এই কোড পেস্ট করুন

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

  • এন্টার টিপুন এবং আপনি ২৮ সংখ্যার কীকোড পাবেন

এটি পাসওয়ার্ড জিজ্ঞাসা করে না। টাইপিং androidএকটি 24 ডিজিটের হ্যাশ aদেয় এবং টাইপিংয়ের সাথে 28 সংখ্যার হ্যাশ দেয়। ধারণা নেই কেন!
Sud007

খারাপ লিঙ্কগুলি! তাদের
মোটেও কীটোল নেই

6

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

$ কীটল-এক্সপোর্টসর্ট-বালিয়াস ওরফে_নাম -কীস্টোরের নমুনা_কিস্টোর.কিস্টোর | ওপেনসএল sha1-বাইনারি | ওপেনসেল বেস 64

আপনাকে সাইগউইন থেকে উপরের কমান্ডটি কার্যকর করতে হবে।


6

ডাউনলোড OpenSSL -> এটি ইনস্টল করুন -> এটি সাধারণত ইনস্টল হবে সি: \ দ্বারা OpenSSL

তারপরে সিএমডি খুলুন এবং টাইপ করুন

cd../../Program Files (Enter)

java (Enter)

dir (Enter)

cd jdk1.6.0_17 (varies with jdk versions) (Enter)

জেডিকে সংস্করণ পরীক্ষা করতে সি: / প্রোগ্রাম ফাইল / জাভা / জেডি কে_ভার্সনে যান

cd bin (enter)

keytool -exportcert -alias androiddebugkey -keystore C:Users\Shalini\.android\debug.keystore | "C:\OpenSSL\bin\openssl sha1 -binary | "C:\OpenSSL\bin\openssl base64 (Enter)

এটি আপনাকে পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে যা অ্যান্ড্রয়েড।


6
  1. কেবলমাত্র আপনার মূল ক্রিয়াকলাপ ফাইলটি খুলুন এবং নীচে উল্লিখিত ফাংশনটি তৈরি করুন:

         try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.application.package.name",
                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) {
    
    } catch (NoSuchAlgorithmException e) {
     }

1.1 অ্যাপ্লিকেশন চালান, এটি আপনার আবেদনের জন্য একটি হ্যাশ কী উত্পন্ন করবে।

  1. এখন, লগ বিড়ালটি খুলুন এবং "কীহ্যাশ" দিয়ে অনুসন্ধান করুন এবং হ্যাশ কীটি অনুলিপি করুন।

  2. একটি আপনি হ্যাশ কী তৈরি করেন আপনি এই ফাংশনটি সরাতে পারেন।


5

1) আপনার অ্যাপ্লিকেশনটিতে স্বাক্ষর করার জন্য একটি কী তৈরি করুন এবং তার নামটি মনে রাখবেন।

2) ওপেনএসএসএল ইনস্টল করুন।

3) আপনার পথে ওপেনএসএসএলের বিন ফোল্ডারটি রাখুন।

৪) এফবি-অ্যান্ড্রয়েড-এসডিকে পৃষ্ঠায় "সেটআপ সিঙ্গল সাইন-অন" এর অধীন উল্লিখিত পদক্ষেপগুলি অনুসরণ করুন এবং আপনার হ্যাশ কী উত্পন্ন করুন। নিশ্চিত হয়ে নিন যে আপনি সঠিক নাম এবং কীস্টোর ফাইলের নাম রেখেছেন।

5) ফেসবকে একটি অ্যাপ্লিকেশন তৈরি করুন এবং মোবাইল ডিভাইস ট্যাব এর অধীনে এই হ্যাশ কীটি প্রবেশ করুন।


5

ফেসবুক বিকাশকারী সাইটে অফিসিয়াল ডকুমেন্টেশন :

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                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 (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

@ উইলিয়ামকিনান: যে কোনও সময়;): পি
হার্দিক ঠাকুর

@ হার্দিকথেকার আমি আপনার কোডটি ব্যবহার করেছি এটি আমাকে ঠিক একই রকম ক্যাপাস দেয় যা এই আদেশ দ্বারা আমি টার্মিনালটি ব্যবহার keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64করেছি এবং এখনও আমি কী হ্যাশ পেয়েছি কোনও সঞ্চিত কী হ্যাশের সাথে মেলে না
শান জিশি

4
keytool -exportcert -alias androiddebugkey -keystore       C:\Users\pravin\.android\debug.keystore | "H:\OpenSSL\bin\openssl" sha1 -binary | "H:\OpenSSL\bin\openssl" base64

এটি আমার পক্ষে কাজ করেছে ...

পদক্ষেপ:

1) Open command line go to - > java Keytool..... for me C:\Program Files\Java\JDK1.7\bin
2) Download OpenSSL from google
3) paste this with changing your paths -
   keytool -exportcert -alias androiddebugkey -keystore C:\Users\pravin\.android\debug.keystore | "H:\OpenSSL\bin\openssl" sha1 -binary | "H:\OpenSSL\bin\openssl" base64 

    ....................   give proper debug.keystore path and openSSL path .. 

4) Finley it may be ask u password .. so give password -> android   ...
5) you will get 28 characters that will be your has key

4

লিনাক্সের জন্য

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

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

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

আপনি ডিবাগ.কিস্টোর খুঁজে পাবেন ".অ্যান্ড্রয়েড" ফোল্ডার থেকে এবং ডেস্কটপে পেস্ট করুন এবং উপরের কমান্ডটি চালান

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

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

দ্রষ্টব্য: নিশ্চিত হয়ে নিন যে উভয় ক্ষেত্রেই এটি অবশ্যই পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে। যদি এটি পাসওয়ার্ড না জিজ্ঞাসা করে তার অর্থ হ'ল আদেশে কিছু ভুল।


আমি বিভিন্ন ওরফে নামের সাথে বিভিন্ন মান পাচ্ছি, কোনটি সঠিক তা যাচাই করব?
জাভাল নন্দ

এটি উভয় নাম দিয়ে পাসওয়ার্ড চেয়েছে?
বিরাজ জালাওয়াদিয়া

হ্যাঁ এবং আমি যে কোনও পাসওয়ার্ড লিখি তা আমাকে হ্যাশ কী দেওয়া হয় .. আমার অ্যাপ্লিকেশনটি ইতিমধ্যে প্লে স্টোরে রয়েছে এবং নেটিভ এফবি এখন কাজ করছে না। রিলিজ বিল্ডের জন্য আমার যে কোনওভাবে সঠিক কী হ্যাশ তৈরি করতে হবে। ডেভেলপারগণ পোস্টে নিম্নলিখিত onCreate ভিতরে কোড অন্তর্ভুক্ত করা পরামর্শ করা হয়, কিন্তু আমি এটা PlayStore অ্যাপ্লিকেশান আপডেট ছাড়া কাজ করতে চাই stackoverflow.com/questions/15021790/...
Javal নন্দ

হ্যাঁ ওপেনসেল সহ বিধবার সমস্যা রয়েছে। আপনি যে পোস্টে নির্দিষ্ট কোড দিয়ে অর্জন করতে পারেন।
বিরাজ জালাওয়াদিয়া

আপনি চাইলে প্লেস্টোরে আপডেট ছাড়াই করতে পারেন। 1) নতুন অ্যান্ড্রয়েড ড্যাম্প অ্যাপ্লিকেশন তৈরি করুন। 2) কোডটির টুকরোটি তৈরিতে রাখুন। 3) অ্যাপ স্টোরটিতে আপনার অ্যাপের একই কীস্টোরের সাহায্যে এই ডেমো অ্যাপ্লিকেশনটিতে স্বাক্ষর করুন 4) তারপরে এই স্বাক্ষরিত
এপিকে

4

একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন জন্য

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

private void facebookHashKey() {

    try {
        PackageInfo info = getPackageManager().getPackageInfo("com.app.helpcove", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String hashCode  = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            System.out.println("Print the hashKey for Facebook :"+hashCode);
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

4

অনুরূপ ইস্যুতে উত্তর হিসাবে আমি এটি আমার জন্য কাজ করে দেখলাম:

  • apkname.apk' জাভা \ jdk1.7.0_79 \ বিন ' ফোল্ডারে আপনি যে ফাইলটির হ্যাশটি জানতে চান তা অনুলিপি করুন
  • এই আদেশটি চালান keytool -list -printcert -jarfile apkname.apk
  • SHA1এই ওয়েবসাইটটি ব্যবহার করে মানটি অনুলিপি করুন এবং রূপান্তর করুন
  • রূপান্তরিত কিহ্যাশ মানটি ব্যবহার করুন ( উদাঃ zaHqo1xcaPv6CmvlWnJk3SaNRIQ = )

3

সহজ সমাধান:

  1. হ্যাশ কীটি যুক্ত করবেন না, সমস্ত কিছু প্রয়োগ করুন
  2. ফেসবুক লগইন টিপে গেলে, আপনি "অবৈধ কী হ্যাশ" বলে একটি ত্রুটি পাবেন key
  3. ফেসবুক অ্যাপ ড্যাশবোর্ডটি খুলুন এবং "xxx =" ("ত্রুটি +" = "চিহ্ন থেকে" xxx "হ্যাশ যোগ করুন)

3

আপনার রিলিজ কীটির একটি হ্যাশ তৈরি করতে, ম্যাক বা উইন্ডোজে নিম্নলিখিত কমান্ডটি চালান আপনার রিলিজ কী এবং আপনার কীস্টোরের পথটি স্থির করুন।

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

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

এই কমান্ডটি একটি 28 টি বৈশিষ্ট্যযুক্ত স্ট্রিং উত্পন্ন করা উচিত। মনে রাখবেন যে আপনার ফেসবুক অ্যাপ্লিকেশন আইডির অ্যান্ড্রয়েড সেটিংসে এই রিলিজ কী হ্যাশটি কপি করুন এবং পেস্ট করুন

চিত্র: fbcdn-dragon-a.akamaihd.net/hphotos-ak-xpa1/t39.2178-6/851568_627654437290708_1803108402_n.png

এর থেকে দেখুন: https://developers.facebook.com/docs/android/getting-st সূত্র :# release-key-hash এবং http://note.taable.com


3

কোটলিনে মুদ্রণ কী হ্যাশ জন্য এটি ব্যবহার করুন

try {
        val info = context.getPackageManager().getPackageInfo(context.packageName,
                PackageManager.GET_SIGNATURES);
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            Log.d("Key hash ", android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT))
        }
    }catch (e:Exception){

    }

2

অ্যান্ড্রয়েড স্টুডিওতেও খনি সমাধান করা হয়েছে তবে কিছুটা ভিন্ন পদ্ধতির সাথে।

অ্যান্ড্রয়েড স্টুডিওতে SHA-1 মান পেতে।

  1. গ্রেডল ক্লিক করুন
  2. সাইন ইন রিপোর্ট ক্লিক করুন
  3. SHA-1 অনুলিপি করুন

অ্যান্ড্রয়েড স্টুডিওতে চিহ্নিত প্যানেল ক্লিক করুন

  1. SHA-1 মানটি এই সিডিটির মতো দেখায়: A1: EA: A3: 5C: 5C: 68: FB: FA: 0A: 6B: E5: 5A: 72: 64: DD: 26: 8D: 44: 84

    এবং আপনার SHA1 মানকে বেস 64 তে রূপান্তর করতে http://tomeko.net/online_tools/hex_to_base64.php খুলুন । এটিই ফেসবুকের জন্য জেনারেটেড হ্যাশ "********************** =" পাওয়া দরকার এবং কী হ্যাশটিকে ফেসবুক অ্যাপ্লিকেশন কনসোলে অনুলিপি করতে হবে।

গীথুব লিংক এখান থেকে নেওয়া এই উত্তরের অংশ


2

জটিল দুটি এবং সহজ এক দুটি পদ্ধতি উপলব্ধ

পদ্ধতি এক: (ছোট কমপ্লেক্স)

প্রথমে আপনাকে এসএসএল ডাউনলোড করতে হবে 64bitবা 32bitতদনুসারে, eসংস্করণ কোড ওপেনএসএল.০.৯.৮.ইউএক্স.আর.এস.পি. বা ওপেনএসএল.০.৯.৮ e_WIN32.zip পরে সংস্করণ কোড সহ নাম সহ ফাইলটি ডাউনলোড করতে ভুলবেন না k,

এবং অ্যান্ড্রয়েড স্টুডিও / জেআর / বিন ডিরেক্টরিতে রাখুন, আপনি কোথায় রাখবেন তা যদি না জানেন তবে অ্যান্ড্রয়েড স্টুডিও শর্টকাটে ডান ক্লিক করে আপনি এই ডিরেক্টরিটি খুঁজে পেতে পারেন:

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

এখন আপনি এক জায়গায় দুটি প্রয়োজনীয় জিনিস পরিচালনা করেছেন তবে এখনও আপনার জন্য সেই পথটি খুঁজে পেতে হবে debug.keystoreযা সর্বদা পাওয়া যায় "C:\Users\yourusernamehere\.android\debug.keystore",

দ্রষ্টব্য যদি আপনার অ্যাপ্লিকেশনটি ইতিমধ্যে প্রকাশিত হয়, বা প্রকাশ করতে চলেছে তবে আপনার প্রকাশনা স্বাক্ষরকরণের কীস্টোরটি ব্যবহার করুন, যদি আপনি কেবলমাত্র ডিবাগ, কীসট্রে ব্যবহারের তুলনায় বিকাশ মোডে পরীক্ষা করছেন and

সমস্ত কিছু সেট আপ হওয়ার সাথে সাথে আপনি হ্যাশ কী প্রজন্মের জন্য যে আদেশটি কার্যকর করতে চেয়েছিলেন তা সাজিয়ে নিন base64 formatএবং আপনি আদেশটি দেখতে পাবেন

keytool.exe -exportcert -alias androiddebugkey -keystore "C:\Users\ayyaz talat\.android\debug.keystore" | "D:\Program Files\Android\Android Studio\jre\bin\openssl\bin\openssl.exe" sha1 -binary |"D:\Program Files\Android\Android Studio\jre\bin\openssl\bin\openssl.exe" base64

এটি আপনাকে ডিবাগ.কিস্টোরের জন্য একটি পাসওয়ার্ড প্রবেশ করানোর অনুরোধ জানাবে যা ডিফল্টরূপে অ্যান্ড্রয়েড। আপনি যদি পাসওয়ার্ডের চেয়ে নিজের কী ব্যবহার করেন তবে তাও আপনার হবে। সবকিছু প্রত্যাশার মতো চলতে থাকলে আউটপুটটি দেখতে দেখতে আশা করি এটি সাহায্য করতে পারে help

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

দ্বিতীয় পদ্ধতি (সম্মানজনকভাবে সহজ একটি)

যদি আপনি উপরের সমস্ত পদ্ধতিটি অবিচ্ছিন্ন করতে চান না, তবে হ্যাসকে লগ করার জন্য কেবল নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:

 private void printKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("KeyHash:", e.toString());
        } catch (NoSuchAlgorithmException e) {
            Log.e("KeyHash:", e.toString());
        }
    }

আউটপুট:

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


1

নিম্নলিখিত কোডটি ব্যবহার করা সর্বোত্তম পন্থা:

private void getHashKey(String pkgName)
{
    try
    {
        PackageInfo info = getPackageManager().getPackageInfo(pkgName, PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures)
        {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String hashKey = Base64.encodeBytes(md.digest());
            _hashKey_et.setText(hashKey);
            Log.i("KeyTool", pkgName + " -> hashKey = " + hashKey);
        }
    }
    catch (NameNotFoundException e)
    {
        e.printStackTrace();
    }
    catch (NoSuchAlgorithmException e)
    {
        e.printStackTrace();
    }
}

তবে আমি এতটাই হতাশ হয়েছি যে ফেসবুক অ্যাপের জন্য হ্যাশকি তৈরির কোনও সহজ সরঞ্জাম নেই। প্রতিবার আমাকে ওপেনসেল এবং কীটোলের সাথে খেলতে হবে বা স্বাক্ষর থেকে হ্যাশ পেতে একটি কোড ব্যবহার করতে হয়েছিল ...

সুতরাং আমি একটি সাধারণ কীজেনটুল লিখেছি যা এটি আপনার জন্য কাজ করবে: -> গুগল প্লেতে কীজেনটুল <-

উপভোগ করুন :)


1

আমি একটি ছোট ভুল করেছি যা মনে রাখা উচিত। আপনি যদি আপনার কীস্টোর ব্যবহার করছেন তবে আপনার ওরফে নাম দিন, অ্যান্ড্রয়েডব্যাগকি নয় ...

আমি আমার সমস্যা সমাধান করেছি। এখন যদি আমার ডিভাইসে ফেসবুক ইনস্টল করা থাকে তবে তারপরেও আমার অ্যাপ্লিকেশনটি ফেসবুক লগইন সংহতকরণের ডেটা পাচ্ছে। শুধু আপনার হ্যাশ কী সম্পর্কে যত্নশীল।

দয়া করে নীচে দেখুন.

C:\Program Files\Java\jdk1.6.0_45\bin>keytool -exportcert -alias here your alias name  -keystore "G:\yourkeystorename.keystore" |"G:\ssl\bin\openssl" sha1 -binary | "G:\ssl\bin\openssl" base64

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

কুল।


0
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.text.Editable;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

    Button btn;
    EditText et;
    PackageInfo info;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button)findViewById(R.id.button1);
        et=(EditText)findViewById(R.id.editText1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                try {
                    info = getPackageManager().getPackageInfo("com.example.id", PackageManager.GET_SIGNATURES);
                    for (Signature signature : info.signatures) {
                        MessageDigest md;
                        md = MessageDigest.getInstance("SHA");
                        md.update(signature.toByteArray());
                        String something = new String(Base64.encode(md.digest(), 0));
                        //String something = new String(Base64.encodeBytes(md.digest()));
                        et.setText("" + something);
                        Log.e("hash key", something);
                    }
                } catch (NameNotFoundException e1) {
                    Log.e("name not found", e1.toString());
                } catch (NoSuchAlgorithmException e) {
                    Log.e("no such an algorithm", e.toString());
                } catch (Exception e) {
                    Log.e("exception", e.toString());
                }
            }
        });
    }



}

এই কোডটি আমার জন্য একটি বৈধ হ্যাশ কী উত্পন্ন করে না। @ জামশিদের উত্তর ম্যাক ওএসএক্সে আমার জন্য কাজ করে।
Looooii

0

হ্যাশ কী পেতে কোটলিন কোড

 private fun logHashKey() {
    try {
        val info = getPackageManager().getPackageInfo("your.package.name", PackageManager.GET_SIGNING_CERTIFICATES);
        for (signature in info.signingInfo.signingCertificateHistory) {

            val md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            val something = Base64.getEncoder().encodeToString(md.digest());
            Log.e("hash key", something);
        }
    } catch (e1: PackageManager.NameNotFoundException) {
        Log.e("name not found", e1.toString());
    } catch (e: NoSuchAlgorithmException) {
        Log.e("no such an algorithm", e.toString());
    } catch (e: Exception) {
        Log.e("exception", e.toString());
    }
}

বিল্ড সেটিং অনুসারে পরিবর্তিত হওয়ায় দয়া করে ডিবাগ এবং রিলিজ পরিবেশে কী উত্পন্ন করতে ভুলবেন না।


0

এটা চেষ্টা কর :

  • হ্যাশ কী মান পেতে দুটি উপায়

1) কমান্ড লাইনটি ব্যবহার করে হ্যাশ কী পান (অফিসিয়াল ডক: https://developers.facebook.com/docs/android/getting-st সূচনা )

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

অথবা

2) কোড ব্যবহার করে হ্যাশ কী পান

  @Override
   protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);

            //Hask Kay generation 
             GetKeyHase();
    }

    private void GetKeyHase() {
            try {
                PackageInfo info = getPackageManager().getPackageInfo("ADD YOUR PACKAGE NAME", PackageManager.GET_SIGNATURES);
                for (Signature signature : info.signatures) {
                    MessageDigest md = (MessageDigest.getInstance("SHA"));
                    md.update(signature.toByteArray());
                    String hashkey_value = new String(Base64.encode(md.digest(), 0));
                    Log.e("hash key", hashkey_value);
                    //check you logcat hash key value
                }
            }catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.