"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मेमोरी की अधिक खपत के बिना पायथन में बड़ी फ़ाइलों को कैसे हैश करें?

मेमोरी की अधिक खपत के बिना पायथन में बड़ी फ़ाइलों को कैसे हैश करें?

2024-11-06 को प्रकाशित
ब्राउज़ करें:507

How to Hash Large Files in Python without Memory Overconsumption?

पायथन में बड़ी फ़ाइलों के लिए MD5 हैश की गणना करना

पायथन का हैशलिब मॉड्यूल क्रिप्टोग्राफ़िक हैश की गणना के लिए एक सुविधाजनक इंटरफ़ेस प्रदान करता है। हालाँकि, असाधारण रूप से बड़ी फ़ाइलों के लिए जिनका आकार सिस्टम मेमोरी से अधिक है, सीधे हैशलिब का उपयोग करना समस्याग्रस्त हो सकता है। फ़ाइल को प्रबंधनीय टुकड़ों में पढ़कर। यह दृष्टिकोण सुनिश्चित करता है कि संपूर्ण फ़ाइल सामग्री अत्यधिक मेमोरी का उपभोग किए बिना हैश की गई है। यहां एक नमूना पायथन फ़ंक्शन है जो इस तकनीक को लागू करता है:

import hashlib def md5_for_file(f): ब्लॉक_आकार = 2**20 md5 = hashlib.md5() जबकि सत्य: डेटा = f.read(block_size) यदि डेटा नहीं है: तोड़ना md5.अद्यतन(डेटा) रिटर्न md5.digest()

एक बड़ी फ़ाइल के MD5 हैश की गणना करने के लिए, आप फ़ंक्शन को निम्नानुसार शुरू कर सकते हैं:

import hashlib

def md5_for_file(f):
    block_size = 2**20
    md5 = hashlib.md5()
    while True:
        data = f.read(block_size)
        if not data:
            break
        md5.update(data)
    return md5.digest()

फ़ाइल मोड पर नोट

with open("filename", "rb") as f:
    md5 = md5_for_file(f)

अतिरिक्त विचार

सुविधा के लिए, फ़ंक्शन का एक बेहतर संस्करण नीचे प्रस्तुत किया गया है:

&&&]हैशलिब आयात करें ओएस आयात करें def generate_file_md5(rootdir, फ़ाइल नाम): एम = hashlib.md5() f के रूप में open(os.path.join(rootdir, फ़ाइल नाम), "rb") के साथ: buf = f.read() जबकि बफ़: एम.अपडेट(बीयूएफ) buf = f.read() रिटर्न m.hexdigest()सटीकता को सत्यापित करने के लिए जैकसम जैसे बाहरी उपकरणों के साथ गणना की गई हैश को क्रॉस-चेक करने की अनुशंसा की जाती है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729388119 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3