আপনার প্রশ্নের SHA-1 হ্যাশ সংঘর্ষের অংশের জন্য, এটি কয়েকটি উত্তর দ্বারা সম্বোধন করা হয়েছে।
তবে, এই ফাইলটির একটি বড় অংশ আমরা যে ধরণের ফাইলের সাথে কাজ করছি তার উপর নির্ভর করে:
ফাইলটির সামগ্রিক সামগ্রী এবং অপারেশন বজায় রাখে (তবে অবশ্যই এখন দূষিত সামগ্রী অন্তর্ভুক্ত রয়েছে যা মূলত সেখানে পরিবর্তিত সামগ্রী ছিল না )
এর অর্থ কীটি পরিবর্তনগুলি সনাক্ত করছে তার মধ্যে প্রচুর পার্থক্য রয়েছে:
- যদি এটি একটি স্বাক্ষরিত সম্পাদনযোগ্য, (যুক্তিসঙ্গত) সুযোগ নয়: আপনাকে কোনওভাবে দুটি হ্যাশ সংঘর্ষ পেতে হবে: ফাইলের SHA-1 এবং অভ্যন্তরীণ। এক্সের স্বাক্ষর।
- যদি এটি একটি স্বাক্ষরযুক্ত সম্পাদনযোগ্য,। কম, স্বাক্ষরযুক্ত। ডেল বা অনুরূপ হয় তবে তাদের সংস্থার কাঁটাচামচগুলি এমনভাবে যুক্ত করা যেতে পারে যা তাদের ক্রিয়াকলাপ পরিবর্তন করে না এবং এভাবে আপনি (শেষ পর্যন্ত) একটি হ্যাশ সংঘর্ষ পেতে পারেন যা 'সাধারণ' দ্বারা সনাক্তযোগ্য নয় অপারেশন.
- যদি এটি কোনও উত্স কোড ফাইল বা অনুরূপ কাঠামো (.cs, .c, .h, .cpp, .rb, .mml, .config, .xML, .pl, .bat, .ini) সংযোজন, পরিবর্তন বা অপসারণসমূহ বৈধ মন্তব্য সিনট্যাক্সের ক্ষেত্রে সীমাবদ্ধ হতে পারে যে পরিবর্তনটি বেশিরভাগ ব্যবহারের দ্বারা স্পষ্ট হয় না (এটি সংকলন করে বা চালিত হয়, এটি কোনও পাঠ্য সম্পাদক দ্বারা খোলার নয়)।
- যদি এটি একটি .iso বা .zip বা অন্য ধারক বিন্যাস হয় তবে এটি বেশ সম্ভাবনাও না কারণ বেশিরভাগ এলোমেলো পরিবর্তনগুলি ধারককে দূষিত করবে। এটি করা সম্ভব: একটি বোগাস ফাইল এন্ট্রি যুক্ত করুন বা ধারকটির মধ্যে একটি সামগ্রী পরিবর্তন করুন এবং এটি পুনরায় পরীক্ষা করুন, তবে আপনি জটিলতার একটি স্তর যুক্ত করছেন এবং ফলাফলটি পরীক্ষা করার জন্য অতিরিক্ত সময় যুক্ত করছেন, পাশাপাশি শ্রদ্ধার সাথে সীমিত স্বাধীনতার সীমাবদ্ধতা রেখেছেন কীভাবে এবং কী বিষয়বস্তু পরিবর্তন করা যেতে পারে।
- যদি এটি কোনও পাঠ্য বা পাঠ্যের মতো ফর্ম্যাট থাকে তবে 'বৈধ' ফাইল থাকা অবস্থায় এগুলি আপনার পছন্দ মতো প্রায় কোনওভাবেই পরিবর্তন করা যেতে পারে, যদিও সামগ্রীটি সম্ভবত লক্ষণীয় হবে।
- .Rtf, .doc, .html, .xslx, এবং অন্যান্য মার্কআপ-এস্কু ফর্ম্যাটগুলির মতো অনেকগুলি বিন্যাসের সাহায্যে এগুলি সংযোজন বা সংশোধন করা যেতে পারে যেগুলি পার্সার দ্বারা অন্বেষণযোগ্য হবে, সুতরাং দৈর্ঘ্য ব্যতীত (বা এমনকি একটি সীমাবদ্ধ দৈর্ঘ্যের সাথেও) , কম স্বাচ্ছন্দ্য) ফাইলগুলি পরিবর্তিত হতে পারে (শেষ পর্যন্ত) হ্যাশ সংঘর্ষ পেতে এখনও কেবল একটি বৈধ ফাইল নয়, তবে উল্লেখযোগ্যভাবে কোনও পরিবর্তন করা হয়নি যা তারা ব্যবহার করবে এমন সাধারণ অ্যাপ্লিকেশনগুলিতে দৃশ্যমান।
সুতরাং, আপনি যা রেখে গেছেন তা হ'ল যে কোনও কাঠামোর সাথে সংঘর্ষগুলি কীভাবে হয় যা অকার্যকর এবং সম্ভবত কিছুটা ডিগ্রী সনাক্তকরণযোগ্য:
- আপনার ইচ্ছার যে কোনও কার্যকরী পরিবর্তন করুন (সম্ভবত দূষিত সামগ্রী সন্নিবেশ করা) এবং ফাইল ফর্ম্যাট নির্দিষ্ট বৈধতা ধরে রাখতে কোনও অতিরিক্ত পরিবর্তন করুন
- অযৌক্তিক হবে এমন একটি বিভাগ যুক্ত করুন (মন্তব্য ব্লকগুলির মধ্যে, একটি টেক্সট ফাইলের একেবারে শেষে 3k ক্যারিজ ফেরত দেওয়া আছে, একটি বর্তমান মন্তব্য ব্লককে আলাদা করুন)
- পরিবর্তনের জন্য একটি অক্ষর / কোড পয়েন্ট / বাইট যুক্ত করুন বা নির্বাচন করুন এবং প্রতিটি সম্ভাব্য বৈধ সমন্বয় চেষ্টা করুন (উদাহরণস্বরূপ, প্রতিটি বাইট সমন্বয়টি বিভিন্ন এনকোডিংয়ের জন্য বৈধ নয়)।
- হ্যাশটির পুনঃসংযোগ করুন, দেখুন সংঘর্ষ মেলে কিনা।
- যদি এটি না হয়, যাও 3।
ধরা যাক আপনার কাছে একটি সুপার ফাস্ট কম্পিউটার এবং একটি ছোট ফাইল রয়েছে, যেমন বৈধ বাইট সিকোয়েন্স সহ পরিবর্তন এবং হ্যাশটির পুনরায় গণনা করতে 1 মিলিসেকেন্ড লাগে (সম্ভবত কিছু ডেডিকেটেড হার্ডওয়্যার প্রয়োজন)। যদি হ্যাশ বিতরণটি পুরোপুরি এলোমেলোভাবে এবং পরিসীমা জুড়ে বিতরণ করা হয় তবে আপনি SHA-1 এর সাথে প্রতিটি 2^160
চেষ্টা (জোর করে জোর করে) এর সাথে সংঘর্ষ পাবেন ।
2^160/1000/60/60/24/365.24
= 4.63x10^37 years
= 46,300,000,000,000,000,000,000,000,000,000,000,000 years
= 46 undecillion years.
তবে ওহে, আসুন 2^60
এবং 2^52
সংস্করণগুলি চেষ্টা করুন , এবং ভান করুন যে তারা আমাদের যেভাবে পছন্দ করে (তারা পছন্দ করে না) ফাইলটি সংশোধন করার অনুমতি দেয় এবং তারাও প্রতিটি চেষ্টা 1 মিমি করে সম্পন্ন করতে পারে:
2^52 yields 142,714 years
/*humans might still be around to care, but not about these antiquated formats*/
2^60 yields 3.65x10^7 years = 36,500,000 years
/*machines will probably have taken over anyway*/
তবে ওহে, আপনি ভাগ্যবান হতে পারেন। সত্যিই, সত্যিই, যেকোন কিছু-লোক-কল-অলৌকিক ঘটনাগুলির চেয়ে অলৌকিক ঘটনা।