Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

MD5 एल्गोरिदम कैसे काम करता है?

संदेश के संदेश डाइजेस्ट की गणना करने के लिए निम्नलिखित चरण किए जाते हैं:

  1. चरण 1 - पैडिंग बिट्स जोड़ें - संदेश को इस तरह जारी रखा या पैड किया जाता है कि बिट्स में इसकी कुल लंबाई 448 मॉड्यूलो 512 के अनुरूप है। यह ऑपरेशन लगातार लागू किया जाता है भले ही संदेश की बिट्स में लंबाई मूल रूप से 448 मॉड्यूलो 512 के अनुरूप हो। 448 + 64 = 512, इसलिए संदेश को इस तरह पैड किया जाता है कि इसकी लंबाई अब 512 के पूर्णांक गुणक से 64 बिट कम है।
  2. चरण 2 - लंबाई जोड़ें - मूल संदेश M की लंबाई का 64-बिट विवरण (पैडिंग बिट्स जोड़े जाने से पहले) चरण 1 के परिणाम में जोड़ा जाता है। यदि मूल संदेश की लंबाई 2^64 से अधिक है, तो केवल संदेश M की लंबाई के निम्न-क्रम 64 बिट्स का उपयोग किया जाता है। इसलिए, फ़ील्ड में मूल संदेश M की लंबाई मॉड्यूलो 2^64 शामिल होती है। ये बिट्स दो 32-बिट शब्दों के रूप में जोड़े जाते हैं और निम्न-क्रम (कम से कम महत्वपूर्ण) शब्द पहले जोड़ा जाता है। चरण 1 और चरण 2 का परिणाम बिट्स में एक संदेश है जिसकी लंबाई 512 बिट्स का पूर्णांक गुणक है।
  3. चरण 3 - MD बफर प्रारंभ करें - MD5 हैश एल्गोरिदम के मध्यवर्ती और अंतिम परिणाम को रखने के लिए 128-बिट बफर का उपयोग किया जा सकता है। संदेश डाइजेस्ट का मूल्यांकन करने के लिए चार-शब्द बफर (A, B, C, और D) का उपयोग किया जा सकता है। इसलिए, प्रत्येक A, B, C, D एक 32-बिट रजिस्टर है। इन रजिस्टरों को हेक्साडेसिमल में निम्न मानों पर बूट किया जाता है, निम्न-क्रम बाइट्स पहले:
    • शब्द A: 01 23 45 67
    • शब्द B: 89 ab cd ef
    • शब्द C: fe dc ba 98
    • शब्द D: 76 54 32 10
  4. चरण 4 - 512 बिट (16-शब्द) ब्लॉक में संदेश संसाधित करें - एक संपीड़न फ़ंक्शन में प्रसंस्करण के चार राउंड शामिल हैं। प्रत्येक राउंड वर्तमान 512-बिट ब्लॉक को संसाधित किए जा रहे (Yq) और 128-बिट बफर मान ABCD को इनपुट के रूप में लेता है और बफर के तत्व को अपडेट करता है। चार सहायक फ़ंक्शन वर्णित किए जा सकते हैं जो प्रत्येक तीन 32-बिट शब्दों को इनपुट के रूप में लेते हैं और आउटपुट के रूप में एक 32-बिट शब्द उत्पन्न करते हैं:
    • F(X, Y, Z) = XY v not(X) Z
    • G(X, Y, Z) = XZ v Y not(Z)
    • H(X, Y, Z) = X xor Y xor Z
    • I(X, Y, Z) = Y xor (X v not(Z))

    प्रत्येक बिट स्थिति में, F सशर्त के रूप में कार्य करता है: यदि X तो Y अन्यथा Z। फ़ंक्शन F को + का उपयोग करके v के बजाय दर्शाया जा सकता है क्योंकि XY और not X(Z) कभी भी समान बिट स्थिति में 1 नहीं होंगे।

  5. चरण 5 - आउटपुट - संदेश डाइजेस्ट A, B, C, D सहित एक आउटपुट उत्पन्न करता है। अंतिम राउंड से आउटपुट 128-बिट हैश परिणाम या संदेश डाइजेस्ट है जिसे सभी t 512-बिट ब्लॉकों को उत्तरोत्तर संसाधित करने के बाद प्राप्त किया जा सकता है।
  1. Android में Constraint Layout कैसे काम करता है? Android में Constraint Layout कैसे काम करता है?

    परिचय सरल शब्दों में, Constraint Layout एक Relative Layout का उन्नत संस्करण है। इसका उपयोग चाइल्ड व्यू पदानुक्रम को कम करने और प्रदर्शन में सुधार करने के लिए किया जाता है। Constraint Layout के गुण Wrap Content यह डेटा के अनुसार व्यू के आकार को लपेटता है। Any Size यह match_parent के समान है।

  1. YouTube के रिकमेंडेशन इंजन के अंदर: एल्गोरिदम वीडियो कैसे चुनता है YouTube के रिकमेंडेशन इंजन के अंदर: एल्गोरिदम वीडियो कैसे चुनता है

    YouTube का अनुशंसित अनुभाग वह जगह है जहां लोग अक्सर नए वीडियो देखने के लिए जाते हैं। यहां वीडियो उपयोगकर्ता के अनुरूप होते हैं ताकि वे उन वीडियो पर क्लिक करें जो YouTube को लगता है कि वे देखने की सबसे अधिक संभावना रखते हैं। लेकिन वास्तव में इन वीडियो को कैसे चुना जाता है? अधिकांश लोग इस प्रक्रिया को

  1. Windows रजिस्ट्री को समझना: कार्यक्षमता और महत्व Windows रजिस्ट्री को समझना: कार्यक्षमता और महत्व

    Windows रजिस्ट्री Windows एप्लिकेशन के साथ-साथ Windows ऑपरेटिंग सिस्टम के कॉन्फ़िगरेशन, मान और गुणों का एक संग्रह है जिसे एक विलक्षण भंडार में पदानुक्रमित तरीके से व्यवस्थित और संग्रहीत किया जाता है। जब भी Windows सिस्टम में कोई नया प्रोग्राम इंस्टॉल होता है, तो उसके गुणों जैसे आकार, संस्करण, स्टोर