MD5 ইনপুট / আউটপুট জন্য সর্বাধিক দৈর্ঘ্য


164

এমডি 5 হ্যাশ করতে পারে এমন স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্য কত? বা: যদি এর কোনও সীমা না থাকে এবং যদি তাই হয় তবে এমডি 5 আউটপুট মানের সর্বোচ্চ দৈর্ঘ্য কত হবে?


2
উইকির অনুসরণ করুন: en.wikedia.org/wiki/MD5
ফ্র্যাঙ্ক

উত্তর:


240

এমডি 5 128 বিটের স্থির দৈর্ঘ্যের আউটপুটটিতে একটি স্বেচ্ছাসেবী দৈর্ঘ্যের বার্তাটি প্রক্রিয়া করে, সাধারণত 32 হেক্সাডেসিমাল ডিজিটের অনুক্রম হিসাবে উপস্থাপিত হয়।


95
স্বরে নোট করুন: MD5 হ্যাশ দৈর্ঘ্য = 128 bits= 16 bytes=32 hex digits
চেকসাম

2
[একটি সাধারণ সম্পাদনা] 32 হেক্স ডিজিট এবং স্ট্রিংয়ে কেবল '
এজে

1
আমি আগের মন্তব্যে কিছুটা ভুল লক্ষ্য করেছি। পাঠ্যটি উদ্ধৃত হিসাবে হওয়া উচিত :) "32 হেক্স অঙ্ক এবং স্ট্রিংয়ে কেবল 'আজ' থেকে বর্ণ এবং '0-9' থেকে অঙ্কগুলি রয়েছে"
রিমিস বি

2
@ শাফিজাদেহ উত্তরের বিবরণ অনুসারে, ইনপুটটির একটি নির্বিচার দৈর্ঘ্য রয়েছে। এর অর্থ প্যারামিটারটি আপনার যে কোনও দৈর্ঘ্যের হতে পারে।
kdojeteri

1
@ পেপিং একটি ছোট সংশোধন: ব্যবহৃত প্রোগ্রামিং ভাষার ব্যবহৃত ডেটাটাইপ যতক্ষণ ব্যবহৃত হতে পারে ইনপুটটি দীর্ঘ হতে পারে। উদাহরণ: জাভা এর স্ট্রিং অভ্যন্তরীণভাবে একটি অ্যারে ব্যবহার করে, সুতরাং, স্ট্রিংটিতে কেবল (2 ^ 31) -1 টি অক্ষর থাকতে পারে (বা কম, গাদা আকারের উপর নির্ভর করে) Java এটি জাভাতে MD5 ফাংশনের জন্য আপনার সর্বোচ্চ ইনপুটও হবে। তবে খাঁটি তাত্ত্বিকভাবে, MD5 ফাংশনটি স্বেচ্ছাসেবী দৈর্ঘ্যের একটি ইনপুট প্রক্রিয়া করতে পারে। ;)
রিকোব্রেজাররা

38

দৈর্ঘ্য যুক্ত করুন

বি এর একটি 64-বিট উপস্থাপনা (প্যাডিং বিট যুক্ত করার আগে বার্তার দৈর্ঘ্য) পূর্ববর্তী পদক্ষেপের ফলাফলটিতে সংযুক্ত করা হয়েছে। সম্ভাব্য ইভেন্টে যে খ 2 ^ 64 এর চেয়ে বেশি, তবে কেবলমাত্র নিম্ন-অর্ডার 64 বিট ব্যবহার করা হয়।

  • হ্যাশ সর্বদা 128 বিট থাকে। যদি আপনি এটিকে হেক্সডিসিমাল স্ট্রিং হিসাবে এনকোড করেন তবে আপনি 32 টি অক্ষর দিয়ে অক্ষর প্রতি 4 টি বিট এনকোড করতে পারেন।
  • MD5 এনক্রিপশন নয়। মূল স্ট্রিংটি পেতে আপনি এমডি 5 হ্যাশটিকে সাধারণভাবে "ডিক্রিপ্ট" করতে পারবেন না।

আরও এখানে দেখুন ।


বার্তার দৈর্ঘ্য সীমাহীন , আপনি বার্তাটি কী বোঝাতে চান ? এটা কি ইনপুট? আমার প্রশ্নটি হলMD5("how many characters exactly?");
শাফিজাদেহ

@ শাফিজাদেহ আপনার ইনপুটটি আপনার বর্তমান প্রোগ্রামিং ভাষায় যথাসম্ভব দীর্ঘ হতে পারে, জাভাতে এটি স্ট্রিংয়ের (2 ^ 31) -1 অক্ষর হতে পারে characters এবং হ্যাঁ, "বার্তা" ইনপুট।
রিকোব্রেজাররা

@ শাফিজাদেহ ... বা একটি ফাইল থেকে ইনপুট উপলব্ধ স্টোরেজ হিসাবে বৃহত্তর হতে পারে।
টুলমেকারস্টেভ

9

আপনার কোনও দৈর্ঘ্য থাকতে পারে তবে স্ট্রিং ইনপুটটি দীর্ঘ হলে কম্পিউটারে মেমরির সমস্যা থাকতে পারে। আউটপুট সর্বদা 32 টি অক্ষর।


4
যদি স্ট্রিং ইনপুটটি দীর্ঘ হয় তবে এটি কোনও ফাইলের মধ্যে না থাকলে প্রথমে সিস্টেমে এটির অস্তিত্ব থাকত না, অন্যথায়, আপনি কেবলমাত্র ডাইজেস্ট ফাংশনটিতে পড়ার সাথে ব্লকগুলিতে পাস করতে পারেন, অন্য কথায়, আপনার কেবল প্রয়োজন blockএকসাথে ইনপুট বাইট আছে ।
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

6

অ্যালগরিদম নির্বিচার ইনপুট দৈর্ঘ্য সমর্থন করার জন্য ডিজাইন করা হয়েছে। অর্থাৎ আপনি ডিভিডি-র আইএসওর মতো বড় ফাইলগুলির হ্যাশগুলি গণনা করতে পারেন ...

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

তবে আউটপুট স্ট্রিং সবসময় একই হবে: 32 হেক্স চর (128 বিট)!



4

আপনি MD5 এর পরিবর্তে SHA-1 ব্যবহার করতে চাইতে পারেন , কারণ MD5 টি ভাঙ্গা হিসাবে বিবেচিত।

আপনি এই উইকিপিডিয়া নিবন্ধে MD5 দুর্বলতা সম্পর্কে আরও পড়তে পারেন ।


5
এটি গুজব ছাড়া আর কিছু নয়। এমডি 5 বেশিরভাগ সাধারণ ওয়েব-ডেভলপমেন্ট কাজের জন্য যথেষ্ট ভাল
আপনার প্রচলিত সংবেদন

11
এর স্রষ্টা, পাশাপাশি ব্রুস শ্নিয়ার এবং হোমল্যান্ড সিকিউরিটি একমত হয়েছে যে এটি ভেঙে গেছে ... এটি আর কিছু সময়ের জন্য ভেঙে গিয়েছিল যে আপনাকে আরও কত 'গুজব ছড়িয়ে' বোঝাতে হবে? ঘটনাটি হ'ল এটি নির্বিচারে একটি নির্দিষ্ট হ্যাশ উত্পন্ন করে এমন একটি ইনপুট সন্ধান করা সহজ। অবশ্যই আপনি যথেষ্ট পরিমাণে লবণ ব্যবহার করে আপনার ইনপুটগুলিকে সল্ট করে এই ঝুঁকি হ্রাস করতে পারেন। পার্শ্ব-নোটে: SHA-1 ঠিক একইভাবে ভাঙ্গা হিসাবে বিবেচিত হয়। আপনি যদি লোকদের আপগ্রেড করার পরামর্শ দেন তবে তাদের SHA-2 এ আপগ্রেড করার পরামর্শ দিন, দয়া করে।
কান্দারে

3
@ কান্ডার ওহ আমার খুব দরকার need একটি উদাহরণ. একটি হ্যাশ দেওয়া হয়েছে, আপনি কি উত্সের স্ট্রিং আনবেন? কোনও দুর্দান্ত নিবন্ধের লিঙ্ক নয়, কারও মতামত নয় তবে কেবল একটি উত্সের স্ট্রিং?
আপনার কমন সেন্স

2
"ভাঙা" শব্দটির অধীনে তারা আসলে কী বোঝায় তা সত্যই কেউ উল্লেখ করেনি। যদিও, @ ইওরকমমনসেন্সটি বোঝায়।
JSmyth

4
আপনি এমডি 5 এর সুরক্ষা ব্যবহারের কথা বলছেন। তবে এমডি 5 (বা অন্য কোনও হ্যাশিং কৌশল) এর আরও অনেকগুলি ব্যবহার রয়েছে। আমি, একটির জন্য, এটির হ্যাশ দ্বারা কোনও ফাইলের নাম পরিবর্তন করতে এটি ব্যবহার করতে চাই। আমি অবশ্যই এমডি 5 এর সংঘর্ষ প্রতিরোধের বিষয়ে উদ্বিগ্ন নই। আপনার পোস্ট করা সমস্ত কিছু এখনও সত্য, কেবল আমার 2 সেন্ট।
tfrascaroli

3

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

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