تمرین برنامه نویسی پایتون برای یافتن هش یک فایل

3 سال پیش

تمرین برنامه نویسی پایتون برای یافتن هش یک فایل

در این مثال از مجموعه آموزش برنامه نویسی سایت سورس باران، شما تمرین برنامه نویسی پایتون برای یافتن هش یک فایل را یاد خواهید گرفت.

پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار

 

برای درک این مثال ، باید از مباحث برنامه نویسی پایتون زیر آگاهی داشته باشید:

توابع هش مقدار دلخواهی از داده را می گیرد و یک رشته بیت با طول ثابت را برمی گرداند. به خروجی تابع پیام هضم (digest message) گفته می شود.

 

آنها به طور گسترده ای در رمزنگاری برای اهداف احراز هویت استفاده می شوند.

توابع هش بسیاری وجود دارد مانند MD5 ، SHA-1 و غیره.

در این مثال، نحوه هش کردن یک فایل را نشان خواهیم داد. ما از الگوریتم هش SHA-1 استفاده خواهیم کرد. هضم SHA-1 160 بیت طول دارد.

ما داده هایفایل را به یک باره تغذیه نمی کنیم، زیرا برخی از فایل ها بسیار بزرگ هستند که به یکباره در حافظه جای می گیرند.

شکستن فایل به قطعات کوچک، فرآیند حافظه را کارآمد می کند.

سورس کد برای یافتن هش یک فایل

# Python rogram to find the SHA-1 message digest of a file

# importing the hashlib module
import hashlib

def hash_file(filename):
   """"This function returns the SHA-1 hash
   of the file passed into it"""

   # make a hash object
   h = hashlib.sha1()

   # open file for reading in binary mode
   with open(filename,'rb') as file:

       # loop till the end of the file
       chunk = 0
       while chunk != b'':
           # read only 1024 bytes at a time
           chunk = file.read(1024)
           h.update(chunk)

   # return the hex representation of digest
   return h.hexdigest()

message = hash_file("track1.mp3")
print(message)

خروجی

۶۳۳d7356947eec543c50b76a1852f92427f4dca9

در این برنامه فایل را در حالت باینری باز می کنیم. توابع Hash در ماژول hashlib در دسترس هستند. ما با استفاده از حلقه while تا انتهای پرونده حلقه می زنیم. با رسیدن به پایان، ما یک شی بایت خالی دریافت می کنیم.

در هر تکرار، ما فقط ۱۰۲۴ بایت (این مقدار را می توان مطابق میل ما تغییر داد) از فایل می خوانیم و عملکرد هش را به روز می کنیم.

سرانجام، ما پیام هضم را در نمایش هگزادسیمال با استفاده از متد () hexdigest برمی گردانیم.

منبع.

لیست جلسات قبل آموزش برنامه نویسی پایتون

  1. آموزش نصب و اجرای برنامه نویسی پایتون
  2. کلیدواژه ها و شناسه های برنامه نویسی پایتون
  3. دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
  4. متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون 
  5. انواع داده ها در برنامه نویسی پایتون
  6. تبدیل نوع در برنامه نویسی پایتون
  7. ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
  8. عملگرها در برنامه نویسی پایتون
  9. نام و دامنه در برنامه نویسی پایتون
  10. دستور شرطی if…else در برنامه نویسی پایتون
  11. حلقه for در برنامه نویسی پایتون
  12. حلقه while در برنامه نویسی پایتون
  13. دستورات break و continue در برنامه نویسی پایتون
  14. دستور pass در برنامه نویسی پایتون
  15. توابع در برنامه نویسی پایتون
  16. آرگومان تابع در برنامه نویسی پایتون
  17. تابع بازگشتی در برنامه نویسی پایتون
  18. تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
  19. متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
  20. کلیدواژه global در برنامه نویسی پایتون
  21. ماژول های برنامه نویسی پایتون
  22. پکیج ها در برنامه نویسی پایتون
  23. اعداد و تبدیل نوع داده در برنامه نویسی پایتون 
  24. لیست در برنامه نویسی پایتون
  25. تاپل در برنامه نویسی پایتون 
  26. رشته ها در برنامه نویسی پایتون
  27. مجموعه ها در برنامه نویسی پایتون
  28. دیکشنری در برنامه نویسی پایتون
  29. عملیات ورودی/خروجی در برنامه نویسی پایتون 
  30. دایرکتوری و مدیریت فایل ها در برنامه نویسی پایتون
  31. خطاها و استثناهای توکار در برنامه نویسی پایتون
  32. مدیریت استثناها در برنامه نویسی پایتون
  33. استثناهای تعریف شده توسط کاربر در برنامه نویسی پایتون
  34. برنامه ‌نویسی شی گرا در پایتون
  35. اشیا و کلاس ها در برنامه نویسی پایتون
  36. وراثت در برنامه نویسی پایتون
  37. وراثت چندگانه در برنامه نویسی پایتون
  38. سربارگذاری عملگرها در برنامه نویسی پایتون
  39. تکرار کننده ها در برنامه نویسی پایتون
  40. Generator در برنامه نویسی پایتون
  41. بستار در برنامه نویسی پایتون
  42. دکوراتور در برنامه نویسی پایتون
  43. دکوراتور property در برنامه نویسی پایتون
  44. عبارات با قاعده در برنامه نویسی پایتون (RegEx)
  45. تمرین برنامه نویسی پایتون برای پرینت !Hello world
  46. تمرین برنامه نویسی پایتون برای جمع کردن دو عدد
  47. تمرین برنامه نویسی پایتون برای یافتن ریشه مربع
  48. تمرین برنامه نویسی پایتون برای محاسبه مساحت یک مثلث
  49. تمرین برنامه نویسی پایتون برای حل معادله درجه دوم
  50. تمرین برنامه نویسی پایتون برای مبادله دو متغیر
  51. تمرین برنامه نویسی پایتون برای تولید عدد تصادفی
  52. تمرین برنامه نویسی پایتون برای تبدیل کیلومتر به مایل
  53. تمرین برنامه نویسی پایتون برای تبدیل سانتیگراد به فارنهایت
  54. تمرین برنامه نویسی پایتون برای بررسی مثبت یا منفی بودن یک عدد
  55. تمرین برنامه پایتون برای بررسی زوج یا فرد بودن یک عدد
  56. تمرین برنامه نویسی پایتون برای بررسی سال کبیسه
  57. تمرین برنامه نویسی پایتون برای یافتن بزرگترین عدد در بین سه عدد
  58. تمرین برنامه نویسی پایتون برای بررسی عدد اول
  59. تمرین برنامه نویسی پایتون برای چاپ تمام اعداد اول در یک بازه زمانی
  60. تمرین برنامه نویسی پایتون برای یافتن فاکتورهای یک عدد
  61. تمرین برنامه نویسی پایتون برای نمایش جدول ضرب
  62. تمرین برنامه نویسی پایتون برای چاپ توالی فیبوناچی
  63. تمرین برنامه نویسی پایتون برای بررسی عدد آرمسترانگ
  64. تمرین برنامه نویسی پایتون برای یافتن عدد آرمسترانگ بین دو عدد صحیح
  65. تمرین برنامه نویسی پایتون برای یافتن مجموع اعداد طبیعی
  66. تمرین برنامه نویسی پایتون برای نمایش توان ۲ با استفاده از تابع بی نام
  67. تمرین برنامه نویسی پایتون برای یافتن اعداد قابل تقسیم بر عدد دیگری
  68. تمرین برنامه نویسی پایتون برای تبدیل دهدهی به باینری، اکتال و هگزادسیمال
  69. تمرین برنامه نویسی پایتون برای یافتن مقدار کاراکتر ASCII
  70. تمرین برنامه نویسی پایتون برای یافتن HCF یا GCD
  71. تمرین برنامه نویسی پایتون برای یافتن LCM
  72. تمرین برنامه نویسی پایتون برای یافتن فاکتورهای یک عدد
  73. تمرین برنامه نویسی پایتون برای ساخت یک ماشین حساب ساده
  74. تمرین برنامه نویسی پایتون برای جابجایی کارت های Deck
  75. تمرین برنامه نویسی پایتون برای نمایش تقویم
  76. تمرین برنامه نویسی پایتون برای نمایش توالی فیبوناچی با استفاده از بازگشت
  77. تمرین برنامه نویسی پایتون برای یافتن مجموع اعداد طبیعی با استفاده از بازگشت
  78. تمرین برنامه نویسی پایتون برای یافتن فاکتورهای عدد با استفاده از بازگشت
  79. تمرین برنامه نویسی پایتون برای تبدیل دهدهی به باینری با استفاده از بازگشت
  80. تمرین برنامه نویسی پایتون برای جمع دو ماتریس
  81. تمرین برنامه نویسی پایتون برای انتقال یک ماتریس
  82. تمرین برنامه نویسی پایتون برای ضرب دو ماتریس
  83. تمرین برنامه نویسی پایتون برای بررسی پالیندروم یک رشته  
  84. تمرین برنامه نویسی پایتون برای حذف علائم نگارشی از یک رشته
  85. تمرین برنامه نویسی پایتون برای مرتب سازی کلمات به ترتیب حروف الفبا
  86. تمرین برنامه نویسی پایتون برای نشان دادن مجموعه ها
  87. تمرین برنامه نویسی پایتون برای شمارش تعداد هر مصوت
  88. تمرین برنامه نویسی پایتون برای ادغام نامه ها
  89. تمرین برنامه نویسی پایتون برای یافتن اندازه (وضوح) یک تصویر
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه