यह होगा, लेकिन है लेकिन है।
ऐसा इसलिए होगा क्योंकि बाइट्स की दोहराई गई श्रृंखला को देखते हुए यह वही परिणाम विश्वसनीय रूप से उत्पन्न करने के लिए spec'd है - बिंदु यह है कि हम तब परिणामों की तुलना कर सकते हैं ताकि बाइट्स को नहीं बदला जा सके, या शायद केवल एमडी 5 पर डिजिटल हस्ताक्षर करें पूरे स्रोत पर हस्ताक्षर करने के बजाय परिणाम।
लेकिन यह है कि बग का एक आम स्रोत इस बारे में धारणा बना रहा है कि तारों को कैसे एन्कोड किया गया है। एमडी 5 बाइट्स पर काम करता है, वर्ण नहीं, इसलिए यदि हम एक स्ट्रिंग हैशिंग कर रहे हैं, तो हम वास्तव में उस स्ट्रिंग के एक विशेष एन्कोडिंग को हश कर रहे हैं। कुछ भाषाएं (और अधिक, कुछ रनटाइम) विशेष एन्कोडिंग का पक्ष लेती हैं, और कुछ प्रोग्रामर का उपयोग उस एन्कोडिंग के बारे में धारणा करने के लिए किया जाता है। इससे भी बदतर, कुछ specs एन्कोडिंग के बारे में धारणा कर सकते हैं। यह बग का कारण हो सकता है जहां दो अलग-अलग कार्यान्वयन एक ही स्ट्रिंग के लिए अलग-अलग MD5 हैंश उत्पन्न करेंगे। यह विशेष रूप से ऐसे मामलों में है जहां पात्र यू +0020 से यू +007 एफ के बाहर हैं (और चूंकि यू +007 एफ एक नियंत्रण है, इसलिए किसी के पास अपने स्वयं के मुद्दे हैं)।
यह सब अन्य क्रिप्टोग्राफिक हैंश, जैसे कि SHA- परिवार के हैंश पर लागू होता है।
स्रोत
2010-08-10 16:15:17
आपको SHA512 का उपयोग करना चाहिए। – SLaks
आप एक md5 हैश का उपयोग एन्क्रिप्टेड मान नहीं कर रहे हैं। एन्क्रिप्शन और हैशिंग एक ही चीज़ नहीं हैं। – Chris
@Chris जबकि विधि की योग्यता बहस योग्य है, आप 1 रास्ता एन्क्रिप्शन के लिए हैशिंग एल्गोरिदम का उपयोग कर सकते हैं। – corsiKa