ToolDeck

MD5 Hash Generator

যেকোনো টেক্সট থেকে MD5 হ্যাশ তৈরি করুন

ইনপুট টেক্সট

স্থানীয়ভাবে চলে · গোপন তথ্য পেস্ট করা নিরাপদ

MD5 হ্যাশ

MD5 হ্যাশ এখানে দেখা যাবে…

MD5 হ্যাশিং কী?

MD5 (Message-Digest Algorithm 5) হল একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন যা যেকোনো ইনপুট থেকে — আকার নির্বিশেষে — একটি নির্দিষ্ট 128-bit (16-byte) ডাইজেস্ট তৈরি করে। ১৯৯২ সালে Ronald Rivest RFC 1321-এ প্রকাশ করেন, MD5 MD4-এর দ্রুততর উত্তরসূরি হিসেবে ডিজাইন করা হয়েছিল এবং দ্রুত ইন্টারনেটে সবচেয়ে বেশি ব্যবহৃত হ্যাশ ফাংশনগুলির একটি হয়ে ওঠে। অ্যালগরিদমটি ইনপুটকে 512-bit ব্লকে প্রক্রিয়া করে চার রাউন্ডে ১৬টি করে মোট ৬৪টি অপারেশনের মধ্য দিয়ে, প্রতি রাউন্ডে ভিন্ন নন-লিনিয়ার ফাংশন ব্যবহার করে, এবং ৩২-অক্ষরের হেক্সাডেসিমাল ফিঙ্গারপ্রিন্ট তৈরি করে।

হ্যাশ ফাংশন হল এক-মুখী রূপান্তর: ইনপুট দিলে তাৎক্ষণিকভাবে হ্যাশ গণনা করা যায়, কিন্তু শুধু হ্যাশ থেকে মূল ইনপুট পুনরুদ্ধার করা সম্ভব নয়। ইনপুটে মাত্র একটি বিট পরিবর্তন করলেও সম্পূর্ণ আলাদা একটি ডাইজেস্ট তৈরি হয় — এই বৈশিষ্ট্যকে avalanche effect বলা হয়। MD5 অসীম ইনপুট স্থানকে নির্দিষ্ট 128-bit আউটপুট স্থানে ম্যাপ করে, তাই collision (দুটি ভিন্ন ইনপুট একই হ্যাশ তৈরি করে) গাণিতিকভাবে অবশ্যম্ভাবী, কিন্তু একটি নিরাপদ হ্যাশ ফাংশন সেগুলো খুঁজে বের করাকে গণনাগতভাবে অসাধ্য করে তোলে।

২০০৪ সাল থেকে গবেষকরা MD5-এর বিরুদ্ধে ব্যবহারিক collision আক্রমণ প্রদর্শন করেছেন, অর্থাৎ ডিজিটাল স্বাক্ষর, সার্টিফিকেট বা collision resistance প্রয়োজন এমন যেকোনো প্রেক্ষাপটে এটি আর নিরাপদ নয়। তবে MD5 অ-নিরাপত্তা উদ্দেশ্যে এখনো ব্যাপকভাবে ব্যবহৃত হয়: ডাউনলোডের পরে ফাইলের অখণ্ডতা যাচাই, ক্যাশ কী তৈরি, কন্টেন্ট ডিডুপ্লিকেশন এবং স্ট্রিং থেকে নির্ধারণবাদী শনাক্তকারী তৈরিতে। এই ব্যবহারগুলোর জন্য অ্যালগরিদমের গতি ও সর্বজনীন লাইব্রেরি সমর্থন এটিকে একটি ব্যবহারিক পছন্দ করে তোলে। ২০০৮ সালে Marc Stevens এবং সহকর্মীরা chosen-prefix collision আক্রমণ প্রকাশ করেন, অর্থাৎ একজন আক্রমণকারী ইচ্ছামতো chosen prefix সহ দুটি দলিল তৈরি করতে পারেন যারা একই ডাইজেস্ট শেয়ার করে। এই কৌশলটি ২০০৮ সালের Chaos Communication Congress-এ একটি নকল Certification Authority সার্টিফিকেট তৈরি করে প্রদর্শন করা হয়। ২০১২ সালে Flame ম্যালওয়্যার পরবর্তীতে Microsoft কোড-সাইনিং সার্টিফিকেট জাল করতে chosen-prefix collision ব্যবহার করে, যা ম্যালওয়্যারকে বৈধ Windows Update প্যাকেজ হিসেবে ছদ্মবেশ ধারণ করতে সক্ষম করে। এই বাস্তব-জগতের শোষণগুলো নিশ্চিত করে যে যেসব ক্ষেত্রে বিশ্বাস নির্ভর করে সেখানে অ্যালগরিদমটি ক্রিপ্টোগ্রাফিকভাবে ভঙ্গ এবং যেখানে আক্রমণকারী হ্যাশ করা ইনপুট প্রভাবিত করতে পারে সেখানে এর উপর নির্ভর করা উচিত নয়।

RFC 1321 — The MD5 Message-Digest Algorithm →

কেন এই MD5 জেনারেটর ব্যবহার করবেন?

কিছু ইনস্টল না করে বা কোড না লিখে তাৎক্ষণিকভাবে MD5 হ্যাশ তৈরি করুন। আপনার টেক্সট পেস্ট করুন এবং রিয়েল টাইমে ৩২-অক্ষরের হেক্স ডাইজেস্ট পান।

তাৎক্ষণিক হ্যাশিং
আপনি টাইপ করার সাথে সাথে আউটপুট আপডেট হয়। কোনো বোতাম ক্লিক নেই, কোনো অপেক্ষা নেই — ইনপুট পরিবর্তন করার সাথে সাথেই MD5 ডাইজেস্ট তাৎক্ষণিকভাবে আপডেট হয়।
🔒
গোপনীয়তা-প্রথম প্রক্রিয়াকরণ
সমস্ত হ্যাশিং JavaScript ব্যবহার করে আপনার ব্রাউজারে স্থানীয়ভাবে চলে। আপনার ইনপুট টেক্সট কখনো আপনার ডিভাইস ছেড়ে যায় না এবং কোনো সার্ভারে পাঠানো হয় না।
📋
এক-ক্লিকে কপি
একটি ক্লিকে ক্লিপবোর্ডে হ্যাশ কপি করুন। ছোট হাতে এবং বড় হাতের হেক্স আউটপুটের মধ্যে টগল করুন, যা আপনার সিস্টেমের প্রত্যাশিত ফরম্যাটের সাথে মেলাতে সুবিধা দেয়।
🔍
কোনো অ্যাকাউন্ট প্রয়োজন নেই
কোনো নিবন্ধন নেই, কোনো লগইন নেই, কোনো ব্যবহারের সীমা নেই। পেজ খুলুন এবং সঙ্গে সঙ্গে হ্যাশিং শুরু করুন। আধুনিক ব্রাউজারসহ যেকোনো ডিভাইসে কাজ করে।

MD5-এর ব্যবহার ক্ষেত্র

ফ্রন্টএন্ড ডেভেলপমেন্ট
স্থির অ্যাসেটের জন্য cache-busting হ্যাশ তৈরি করুন। CSS ও JavaScript URL-এ ফাইল কন্টেন্টের MD5 ডাইজেস্ট যোগ করুন যাতে কন্টেন্ট পরিবর্তিত হলে ব্রাউজার আপডেট করা সংস্করণ নিয়ে আসে।
ব্যাকএন্ড ইঞ্জিনিয়ারিং
জটিল কোয়েরি প্যারামিটার বা রিকোয়েস্ট বডি থেকে ডিটারমিনিস্টিক ক্যাশ কী তৈরি করুন। MD5 হ্যাশ Redis, Memcached এবং CDN ক্যাশ স্তরের সাথে ভালো কাজ করে এমন সংক্ষিপ্ত, নির্দিষ্ট-দৈর্ঘ্যের কী তৈরি করে।
DevOps ও CI/CD
MD5 চেকসাম তুলনা করে স্থানান্তরের পরে ফাইলের অখণ্ডতা যাচাই করুন। অনেক প্যাকেজ রেজিস্ট্রি ও আর্টিফ্যাক্ট রিপোজিটরি দ্রুত যাচাইয়ের জন্য ডাউনলোডের পাশে MD5 ডাইজেস্ট প্রকাশ করে।
QA ও পরীক্ষা
পূর্ণ কন্টেন্ট তুলনা না করেই পরীক্ষার মধ্যে অপ্রত্যাশিত পরিবর্তন শনাক্ত করতে API রেসপন্স, ডেটাবেজ ডাম্প বা কনফিগারেশন ফাইলের MD5 হ্যাশ তুলনা করুন।
ডেটা ইঞ্জিনিয়ারিং
সারির কন্টেন্টের MD5 হ্যাশ গণনা করে ETL পাইপলাইনে রেকর্ড ডিডুপ্লিকেট করুন। একই হ্যাশের দুটি সারি ডিডুপ্লিকেশনের প্রার্থী, যা সঞ্চয় ও প্রক্রিয়াকরণ খরচ কমায়।
শিক্ষা ও গবেষণা
এক-মুখী রূপান্তর, avalanche effect এবং নিরাপত্তার জন্য collision resistance কেন গুরুত্বপূর্ণ তা বোঝার জন্য হ্যাশ ফাংশন নিয়ে পরীক্ষা করুন। MD5 হল সবচেয়ে সহজ পরিচিত হ্যাশ যা অধ্যয়ন করা যায়।

MD5 বনাম অন্য হ্যাশ অ্যালগরিদম

MD5 হল সাধারণ হ্যাশ অ্যালগরিদমগুলির মধ্যে দ্রুততম ও সংক্ষিপ্ততম, কিন্তু এটি সবচেয়ে দুর্বল নিরাপত্তা নিশ্চয়তা দেয়। নিচের সারণিটি প্রতিটি অ্যালগরিদমের ডাইজেস্টের আকার, মান ও উপযুক্ত ব্যবহার ক্ষেত্র তুলনা করে।

অ্যালগরিদমডাইজেস্টের আকারহেক্সের দৈর্ঘ্যমানসবচেয়ে উপযুক্ত
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

MD5 কীভাবে কাজ করে

MD5 Merkle-Damgård কনস্ট্রাকশনের মাধ্যমে ইনপুট প্রক্রিয়া করে: বার্তাটিকে 512 বিটের গুণিতকে প্যাড করা হয়, ব্লকে বিভক্ত করা হয় এবং প্রতিটি ব্লক চার রাউন্ডে ১৬টি বিটওয়াইজ অপারেশনের মধ্য দিয়ে যায় যা ইনপুটকে প্রিকম্পিউটেড sine-প্রাপ্ত ধ্রুবকের সাথে মেশায়। ফলাফল হল একটি 128-bit অবস্থা যা চূড়ান্ত ডাইজেস্টে পরিণত হয়।

প্রতিটি রাউন্ড চারটি 32-bit স্টেট ওয়ার্ড (A, B, C, D)-এর মধ্যে তিনটিতে একটি স্বতন্ত্র নন-লিনিয়ার সহায়ক ফাংশন প্রয়োগ করে। রাউন্ড ১ ব্যবহার করে F(B,C,D) = (B AND C) OR (NOT B AND D) — একটি বিটওয়াইজ শর্তাধীন নির্বাচক। রাউন্ড ২ ব্যবহার করে G(B,C,D) = (B AND D) OR (C AND NOT D) — একটি পরিপূরক নির্বাচক। রাউন্ড ৩ ব্যবহার করে H(B,C,D) = B XOR C XOR D — একটি সমতা ফাংশন। রাউন্ড ৪ ব্যবহার করে I(B,C,D) = C XOR (B OR NOT D) — একটি অসামঞ্জস্যপূর্ণ সংযোজক। এই চারটি ফাংশন নিশ্চিত করে যে ইনপুটের প্রতিটি বিট আউটপুট ডাইজেস্টকে প্রভাবিত করে। এর ফলে avalanche effect তৈরি হয় — ছোট ইনপুট পরিবর্তনও ফলাফল হ্যাশে বড় ও অপ্রত্যাশিত পরিবর্তন আনে।

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

অ্যালগরিদমটি পাঁচটি ধাপে এগিয়ে যায়: (১) একটি 1-bit যোগ করুন, তারপর শূন্য যোগ করুন যতক্ষণ না বার্তার দৈর্ঘ্য 448 mod 512 হয়; (২) মূল বার্তার দৈর্ঘ্য 64-bit little-endian পূর্ণসংখ্যা হিসেবে যোগ করুন; (৩) চারটি 32-bit স্টেট ভেরিয়েবল (A, B, C, D) নির্দিষ্ট ধ্রুবক দিয়ে ইনিশিয়ালাইজ করুন; (৪) প্রতিটি 512-bit ব্লককে ৬৪টি অপারেশনে চার নন-লিনিয়ার ফাংশন (F, G, H, I) ব্যবহার করে প্রক্রিয়া করুন, প্রতি রাউন্ডে ১৬টি; (৫) ফলাফলের অবস্থা চলমান মোটের সাথে যোগ করুন এবং little-endian বাইট অর্ডারে চূড়ান্ত 128-bit হ্যাশ আউটপুট করুন।

কোডের উদাহরণ

জনপ্রিয় ভাষা ও পরিবেশে MD5 হ্যাশ কীভাবে তৈরি করবেন। লক্ষ্য করুন যে MD5 ব্রাউজারের Web Crypto API-তে পাওয়া যায় না — একটি লাইব্রেরি বা Node.js ব্যবহার করুন।

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

প্রায়শই জিজ্ঞাসিত প্রশ্ন

MD5 কি এখনো ব্যবহারের জন্য নিরাপদ?
ডিজিটাল স্বাক্ষর, TLS সার্টিফিকেট বা পাসওয়ার্ড হ্যাশিংয়ের মতো নিরাপত্তা-সংবেদনশীল অ্যাপ্লিকেশনের জন্য এটি নিরাপদ নয়। ২০০৪ সাল থেকে ব্যবহারিক collision আক্রমণ প্রদর্শিত হয়েছে এবং সাধারণ হার্ডওয়্যারে সেকেন্ডের মধ্যে chosen-prefix collision আক্রমণ এখন সম্ভব। অ-নিরাপত্তা ব্যবহারের জন্য — চেকসাম, ক্যাশ কী, কন্টেন্ট ডিডুপ্লিকেশন — অ্যালগরিদমটি একটি ব্যবহারিক ও ব্যাপকভাবে সমর্থিত পছন্দ হিসেবে রয়ে গেছে।
MD5 ও SHA-256-এর মধ্যে পার্থক্য কী?
MD5 অ্যালগরিদম একটি 128-bit (32-হেক্স-অক্ষর) ডাইজেস্ট তৈরি করে এবং collision আক্রমণের জন্য দুর্বল। SHA-256 একটি 256-bit (64-হেক্স-অক্ষর) ডাইজেস্ট তৈরি করে এবং কোনো পরিচিত ব্যবহারিক আক্রমণ নেই। SHA-256 একই হার্ডওয়্যারে পুরনো অ্যালগরিদমের চেয়ে প্রায় ৩০-৪০% ধীর, কিন্তু অতিরিক্ত নিরাপত্তা মার্জিন এটিকে যেকোনো অ্যাপ্লিকেশনের জন্য ডিফল্ট পছন্দ করে যেখানে অখণ্ডতা যাচাই প্রতিকূল হস্তক্ষেপ প্রতিরোধ করতে হবে।
MD5 হ্যাশ থেকে মূল ইনপুট ফিরে পাওয়া কি সম্ভব?
না। এই হ্যাশ ফাংশনটি নকশাগতভাবে এক-মুখী — হ্যাশিংয়ের সময় তথ্য বাতিল করে দেয়। তবে সংক্ষিপ্ত বা সাধারণ ইনপুটের জন্য, আক্রমণকারীরা rainbow table (প্রিকম্পিউটেড হ্যাশ-থেকে-প্লেইনটেক্সট ম্যাপিং) বা brute force ব্যবহার করে মূল ইনপুট খুঁজে পেতে পারে। এই কারণেই এটি কখনো পাসওয়ার্ড সঞ্চয়ে ব্যবহার করা উচিত নয়। পরিবর্তে bcrypt, scrypt বা Argon2 ব্যবহার করুন।
একই টেক্সটের জন্য বিভিন্ন টুল কখনো কখনো ভিন্ন MD5 হ্যাশ কেন তৈরি করে?
সবচেয়ে সাধারণ কারণ হল এনকোডিংয়ের পার্থক্য। অ্যালগরিদম অক্ষর নয়, বাইটে কাজ করে। 'hello' স্ট্রিং UTF-8 বনাম UTF-16 বনাম Latin-1-এ এনকোড করলে ভিন্ন হ্যাশ তৈরি করে। আরেকটি সাধারণ সমস্যা হল trailing newline: বেশিরভাগ শেলে echo একটি newline (\n) যোগ করে যদি না আপনি echo -n ব্যবহার করেন। সবসময় হ্যাশ করা সঠিক বাইটগুলো যাচাই করুন।
MD5 হ্যাশ গণনা করতে কতক্ষণ লাগে?
অ্যালগরিদমটি অত্যন্ত দ্রুত। আধুনিক হার্ডওয়্যারে এটি একটি CPU কোরে ৩-৬ GB/s গতিতে ডেটা প্রক্রিয়া করে। একটি GPU প্রতি সেকেন্ডে কোটি কোটি চেকসাম গণনা করতে পারে। এই গতি ফাইল যাচাইয়ের জন্য সুবিধাজনক কিন্তু পাসওয়ার্ড হ্যাশিংয়ের জন্য অসুবিধাজনক, যেখানে ধীর অ্যালগরিদম (bcrypt, Argon2) পছন্দ করা হয় কারণ তারা brute-force আক্রমণ প্রতিরোধ করে।
MD5 collision কী এবং এটি কেন গুরুত্বপূর্ণ?
collision ঘটে যখন দুটি ভিন্ন ইনপুট একই হ্যাশ ডাইজেস্ট তৈরি করে। ২০০৪ সালে Xiaoyun Wang MD5-এর বিরুদ্ধে প্রথম ব্যবহারিক collision প্রদর্শন করেছিলেন। ২০১২ সালের মধ্যে Flame ম্যালওয়্যার Microsoft কোড-সাইনিং সার্টিফিকেট জাল করতে একটি collision ব্যবহার করে। আজ identical-prefix collision এক মিনিটের কম সময়ে গণনা করা যায়। এটি অ্যালগরিদমটিকে এমন যেকোনো অ্যাপ্লিকেশনের জন্য অনুপযুক্ত করে যা collision resistance-এর উপর নির্ভর করে, যেমন ডিজিটাল স্বাক্ষর বা সার্টিফিকেট পিনিং।
ফাইল চেকসামের জন্য MD5 নাকি CRC32 ব্যবহার করব?
ফাইলের অখণ্ডতা যাচাইয়ের জন্য এই চেকসাম CRC32-এর চেয়ে ভালো পছন্দ। CRC32 হল একটি 32-bit ত্রুটি-সনাক্তকরণ কোড যা ট্রান্সমিশনে আকস্মিক দুর্নীতি ধরতে ডিজাইন করা হয়েছে, ইচ্ছাকৃত হস্তক্ষেপ নয়। এর ছোট আউটপুট স্থান মানে collision তৈরি করা সহজ। MD5 একটি 128-bit ডাইজেস্ট প্রদান করে যা অনেক শক্তিশালী আকস্মিক-collision প্রতিরোধ সহ। প্রতিকূল পরিস্থিতিতে (অবিশ্বস্ত উৎস থেকে ডাউনলোড যাচাই), SHA-256 ব্যবহার করুন।