টুল
গাইড

হ্যাশ ক্যালকুলেটর

ক্রিপ্টো

Web Crypto দিয়ে SHA-1/256/384/512 এবং MD5 গণনা। Hex বা Base64 আউটপুট।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই
ইনপুট
আউটপুট
হ্যাশ গণনার জন্য টেক্সট লিখুন।
এই পৃষ্ঠায়

হ্যাশ কী?#

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

এই পৃষ্ঠাটি পাঁচটি অ্যালগরিদম গণনা করে: SHA-2 পরিবার (SHA-256, SHA-384, SHA-512), SHA-1, এবং MD5। চারটি SHA ভেরিয়েন্ট ব্রাউজারের নেটিভ Web Crypto ইঞ্জিনের মাধ্যমে চলে (crypto.subtle.digest), একই আদিম প্রোডাকশন কোড ব্যবহার করে — একটি JavaScript পুনরায়-বাস্তবায়ন নয়। MD5 Web Crypto-র অংশ নয়, তাই এটি শুধুমাত্র আপনি আসলে তা নির্বাচন করলে চাহিদামোতাবেক লোড করা হয়, পৃষ্ঠার প্রাথমিক ডাউনলোডের বাইরে রেখে।

একটি হ্যাশ এনক্রিপশন নয়। এটি অপরিবর্তনীয়: আপনি ডাইজেস্ট থেকে ইনপুট পুনর্গঠন করতে পারবেন না। আপনার যদি দুটি পক্ষের একটি কী-যুক্ত ডাইজেস্ট শেয়ার করতে হয়, HMAC ব্যবহার করুন; আপনার যদি অপারেশনটি উল্টোদিকে ফেরাতে হয়, সিমেট্রিক এনক্রিপশন ব্যবহার করুন।

ব্যবহারবিধি#

  1. বাঁদিকের পেইনে আপনার ইনপুট পেস্ট করুন। যেকোনো টেক্সচুয়াল জিনিস — একটি স্ট্রিং, একটি JSON দলা, একটি কনফিগ স্নিপেট। হ্যাশ করার আগে বাইটগুলো UTF-8 হিসেবে এনকোড করা হয়।
  2. অ্যালগরিদম বেছে নিন:
    • SHA-256 — আধুনিক ডিফল্ট; 256-বিট ডাইজেস্ট, TLS থেকে Git থেকে ব্লকচেইন সর্বত্র ব্যবহৃত।
    • SHA-384 / SHA-512 — একই পরিবারের দীর্ঘতর ডাইজেস্ট; বেছে নিন যখন একটি স্পেক তাদের দাবি করে।
    • SHA-1 — 160-বিট; লিগেসি, চেকসামের জন্য ঠিক, সংঘর্ষ-প্রতিরোধী স্বাক্ষরের জন্য ভাঙা।
    • MD5 — 128-বিট; দ্রুত এবং সর্বব্যাপী কিন্তু ক্রিপ্টোগ্রাফিকভাবে ভাঙা। নন-সিকিউরিটি চেকসাম এবং লিগেসি ক্যাশ কী-এর জন্য উপযোগী।
  3. আউটপুট এনকোডিং বেছে নিন: hex (ছোট-হাতের, ডাইজেস্টের জন্য সাধারণ রীতি) বা base64 (আরও কম্প্যাক্ট, টোকেনে সাধারণ)।
  4. ক্যানোনিক্যাল টেস্ট স্ট্রিং লোড করতে নমুনা ক্লিক করুন, বা নতুন করে শুরু করতে মুছুন। ডাইজেস্ট ডান পেইনে লাইভ আপডেট হয়; কপি তা ধরে।

মূল বৈশিষ্ট্য#

  • নেটিভ Web Crypto। SHA-1/256/384/512 crypto.subtle.digest দ্বারা গণনা করা হয় — ব্রাউজারের অডিট করা বাস্তবায়ন, কোনো তৃতীয়-পক্ষের লাইব্রেরি নয়।
  • অলস MD5। MD5 বাস্তবায়ন শুধুমাত্র আপনি এটি নির্বাচন করলে আনা হয়, তাই এটি কখনো প্রথম রেন্ডারকে ভারী করে না।
  • Hex বা base64। পুনরায় টাইপ ছাড়াই এক-ক্লিক স্যুইচ।
  • লাইভ স্ট্যাটাস লাইন। অ্যালগরিদম এবং ডাইজেস্ট বাইট দৈর্ঘ্য নিশ্চিত করে, তাই একটি ছোট করা বা অফ-বাই-ওয়ান ফলাফল স্পষ্ট।
  • শূন্য আপলোড। হ্যাশিং সম্পূর্ণভাবে আপনার ব্রাউজারে ঘটে; ইনপুট কখনো সার্ভারে পৌঁছায় না।

ব্যবহারিক উদাহরণ#

ক্যানোনিক্যাল রেফারেন্স স্ট্রিং হলো The quick brown fox jumps over the lazy dog। অ্যালগরিদম SHA-256 এবং আউটপুট hex সেট করা অবস্থায়, ডাইজেস্ট হলো:

d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

একই স্ট্রিং SHA-1 (hex) এর অধীনে:

2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

একটি উপযোগী edge case হলো খালি স্ট্রিং। একেবারে কিছুই না হ্যাশ করলেও একটি সু-সংজ্ঞায়িত, অ-খালি ডাইজেস্ট তৈরি হয় — SHA-256-এর জন্য তা e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, এবং MD5-এর জন্য d41d8cd98f00b204e9800998ecf8427e। এই খালি-ইনপুট ভেক্টরগুলো এছাড়াও এই টুলের নিজস্ব টেস্ট স্যুট কীভাবে সঠিকতা যাচাই করে — আপনার আউটপুট যদি ভিন্ন হয়, পৃষ্ঠাটির সাথে কালেভদ্র করা হয়েছে।

প্রশ্নোত্তর#

SHA-256 নাকি MD5 — আমি কোনটি বেছে নেব?#

সিকিউরিটি স্পর্শ করে এমন কিছুর জন্য SHA-256: পাসওয়ার্ড সল্টিং স্কিম, স্বাক্ষরিত URL, অখণ্ডতা প্রমাণ, কন্টেন্ট ID যেগুলোর সংঘর্ষ আক্রমণ প্রতিহত করতে হবে। MD5 শুধুমাত্র নন-অ্যাডভারসারিয়াল চেকসামের জন্য গ্রহণযোগ্য (একটি দ্রুত “এই ফাইল কি পরিবর্তিত হয়েছে?” যাচাই, একটি ক্যাশ কী) যেখানে কেউ সংঘর্ষ জাল করার চেষ্টা করছে না। আপনি নিশ্চিত না হলে, SHA-256-এ ডিফল্ট করুন।

একই ইনপুট কেন সর্বদা একই ডাইজেস্ট দেয়?#

হ্যাশিং নির্ধারক — এই স্তরে কোনো এলোমেলো সল্ট জড়িত নেই (bcrypt-এর বিপরীত)। সেই নির্ধারণবাদই কন্টেন্ট অ্যাড্রেসিংয়ের সম্পূর্ণ বিন্দু: একই বাইটকে সর্বদা একই ফিঙ্গারপ্রিন্ট তৈরি করতে হবে। অপর দিকটি হলো একই গোপন বিষয় হ্যাশ করা দুজন মানুষ একই ডাইজেস্ট পান, যা এজন্য একটি সাধারণ হ্যাশ পাসওয়ার্ড সংরক্ষণের একটি ভয়াবহ উপায়।

আমি কি হ্যাশ থেকে মূল পুনরুদ্ধার করতে পারি?#

না। একটি ক্রিপ্টোগ্রাফিক হ্যাশ ডিজাইন অনুসারে একটি একমুখী ফাংশন; কোনো কী বা বিপরীত অপারেশন নেই। “একটি SHA-256 ডিক্রিপ্ট করা” একটি ক্যাটেগরি ত্রুটি। একমাত্র আক্রমণ হলো ব্রুট ফোর্স (ইনপুট চেষ্টা করা যতক্ষণ না একটি মেলে), যা ঠিক সেই কারণ দুর্বল পাসওয়ার্ডগুলোকে বিপজ্জনক করে তোলে এমনকি সল্ট ছাড়া হ্যাশ করা হলেও।

আমার MD5 কেন আমি সাধারণত ব্যবহার করি এমন একটি টুল থেকে ভিন্ন?#

প্রায় সবসময়ই একটি বাইট-উপস্থাপনা অমিল: একটি শেষের নিউলাইন, ভিন্ন লাইন সমাপ্তি (CRLF বনাম LF), বা অন্য টুলটি একটি UTF-16 উপস্থাপনা হ্যাশ করছে যখন এই পৃষ্ঠাটি UTF-8 হ্যাশ করে। স্ক্রিনের টেক্সট নয়, কাঁচা বাইটগুলো তুলনা করুন।