• 0

كيف أولّد رمز MD5 لملف معين في بايثون؟

أريد أن أنشئ برنامج بسيط للتأكد من رمز MD5 لملف معين يُقدمه المستخدم، فهل هنالك دالة معينة في بايثون لتوليد رمز MD5 للملفات؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

نعم، هنالك دالة hashlib.md5() والتي تسمح لك بالحصول على رمز MD5 للملف الذي تمرره لها، فمثلا لو أردت طباعة رمز MD5 لملف واحد، فيمكنك كتابة سطر مشابهه لهذا السطر:

print hashlib.md5(open(full_path, 'rb').read()).hexdigest()

وأما لو كان لديك مجموعة من الملفات لتوليد رمز MD5 لها، فيمكنك استخدام حلقة التكرار for للحصول على رموز جميع الملفات كما في المثال التالي:

import hashlib
[(fname, hashlib.md5(open(fname, 'rb').read()).digest()) for fname in fnamelst]

وفي حال كان الملف الذي تريد توليد الرمز له كبير للغاية (أكبر من ذاكرة الوصول العشوائي لحاسوبك) فيمكنك قرأته على أجزاء كما في المثال التالي:

def md5(fname):
    hash = hashlib.md5()
    with open(fname, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash.update(chunk)
    return hash.hexdigest()

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن