निम्नलिखित कोड फॉरवर्ड-हैश में उपयोग किए गए सीआरसी 32 को दिखाता है (जहां हम एक ही आइटम को लगातार संदर्भ के साथ कई बार हैश करते हैं):

In [1]: from zlib import crc32

In [2]: crc32('aaaa')
Out[2]: -1382488763

In [3]: crc32('aaaa',-1382488763)
Out[3]: -1081835450

In [4]: crc32('aaaa' * 2)
Out[4]: -1081835450

मेरा सवाल यह है: -1382488763 के ज्ञात प्रारंभिक crc को देखते हुए, क्या हम मूल सामग्री को जाने बिना फॉरवर्ड हैश के मूल्य का अनुमान लगा सकते हैं? स्पष्ट करने के लिए... क्या मैं -1081835450 -1382488763 अकेले से प्राप्त कर सकता हूं?

0
jogarock 4 पद 2018, 00:51

1 उत्तर

सबसे बढ़िया उत्तर

नहीं। crc32() एक प्रारंभिक सीआरसी लेता है, उस पर संदेश लागू करता है, और परिणामी सीआरसी प्राप्त करता है। आपको संदेश चाहिए।

यदि आप aaaa को जाने बिना crc32('aaaa',-1382488763) निर्धारित कर सकते हैं, तो crc32() फ़ंक्शन को पहले तर्क की आवश्यकता क्यों होगी?

यदि आप जानना चाहते हैं कि क्या आप किसी संदेश की पुनरावृत्ति के सीआरसी की गणना कर सकते हैं, केवल बिना दोहराए गए संदेश के सीआरसी दिए गए हैं, तो नहीं। हालाँकि यदि आप संदेश की सीआरसी और संदेश की लंबाई जानते हैं, तो हाँ आप उस संदेश के दो या अधिक दोहराव के सीआरसी की गणना कर सकते हैं, बिना संदेश को जाने। जैसा कि आप टिप्पणियों में नोट करते हैं, वही है जो crc32_combine() zlib में करता है।

1
Mark Adler 4 पद 2018, 23:22