मैं ओपनएसएसएल लाइब्रेरी का उपयोग कर सी में लिख रहा हूं।सी में बड़ी फाइल के MD5 हैश की गणना कैसे करें?
मैं md5 का उपयोग कर एक बड़ी फ़ाइल के हैश की गणना कैसे कर सकता हूं?
जैसा कि मुझे पता है, मुझे रैम में एक पूर्ण फ़ाइल को चार सरणी के रूप में लोड करने की आवश्यकता है और फिर हैश फ़ंक्शन को कॉल करें। लेकिन क्या होगा अगर फ़ाइल लगभग 4 जीबी लंबी है? एक बुरा विचार की तरह लगता है।
सोल्व: askovpen पर धन्यवाद, मुझे मेरी बग मिली। मैं
while ((bytes = fread (data, 1, 1024, inFile)) != 0)
MD5_Update (&mdContext, data, 1024);
का उपयोग किया है नहीं
while ((bytes = fread (data, 1, 1024, inFile)) != 0)
MD5_Update (&mdContext, data, bytes);
मुझे इसकी आवश्यकता जानने के लिए उत्सुकता है? यह निश्चित रूप से एक बुरा विचार हो सकता है अगर यह थ्रेड सुरक्षित नहीं है, क्योंकि यह कार्यक्रम को विस्तारित अवधि और पीओ के लिए अवरुद्ध कर सकता है। उपयोगकर्ता – crockpotveggies
फ़ाइल एन्क्रिप्ट करना एमडी 5 जैसे हैश फ़ंक्शन के साथ इसे उतना ही नहीं है। क्या आप वास्तव में हैश का मतलब है, या आप फ़ाइल को एन्क्रिप्ट करना चाहते हैं? – Oleksi
एमडी 5 स्ट्रीम-आधारित है। आपको पूरे 4 जीबी को स्मृति में लोड करने की आवश्यकता नहीं है - आप इसे टुकड़ों में पढ़ते हैं। –