بسم الله الرحمن الرحيم، السلام عليكم، في هذه المقالة راح اكتب عن ال checksum ايش هو وايش فايدة مع تطبيق عملي.
المحتويات
ايش هو؟
ال checksum هو ال hash حق الملف بشكل مختصر، ويتم انشاء هذا ال hash بإحدى خوارزميات التشفير أحادية الاتجاه، بحيث يكون كبصمة او توقيع للملف.
خوارزميات التشفير أحادية الاتجاه
هذي الخوارزميات تشفر المحتوى الي تمرره لها مع عدم القدرة على فك تشفيره، بمعنى ان عملية التشفير لها اتجاه واحد وهو التشفير فقط مع استحالة فك التشفير، ومن اشهر هذه الخوارزمات هم (SHA2-256, MD5).
ليه؟
سؤال مهم ليش الشي ذا موجود، وايش راح نسفيد منه؟ خوارزميات التشفير أحادية الاتجاه هي خوارزميات تستخدم للتاكد بعدم التلاعب بالبيانات وايضآ ضمان وصول البيانات بالشكل المطلوب، مثلآ في البلوكتشين يتم استخدامها مع كل بلوك وعملية تصير في الشبكة لضمان عدم تلاعب احد بالبيانات، ومثال اخر في توزيعة Ubuntu يتم توفير ال checksum الخاص بالتوزيعة للتاكد من وصلها لك بشكل كامل.
كيف؟
انشاء checksum لملف سهل جدآ خصوصآ مع اداة csum المكتوبة بلغة Rust الي توفرلك 22 خوارزمية احادية الاتجاه تقدر تستخدمها
انشاء checksum
لانشاء checksum في اداة csum راح تمرر الملف والخوارزميات الي تبيها تشتغل على الملف بعد الـ -a او --algorithms (لاتحدد خوارزميات اذا كنت تبي تحدد كل الخوارزميات)، راح نجرب نشغلها على ملف محتواه مرحبآ أسس
csum file.txt -a md5 sha2-256
راح يكون المخرج
file.txt md5 ➤ 292694a05bfd93efad1d772382dd674a
file.txt sha2-256 ➤ ba8caf17fdc0c93ac2f98ba363eb8e60669ccea81ad829a3bb04c248c5e846f9
واذا تبي تحطه في ملف اكيد الشكل الي فوق مو افضل شكل، عشان كذا تم توفير طريقة اخراج افضل تجيك لمن تحط عَلم -p او --plaintext وراح يكون بالشكل التالي
csum file.txt -p -a md5 sha2-256
والمخرج راح يكون
# md5
292694a05bfd93efad1d772382dd674a file.txt
# sha2-256
ba8caf17fdc0c93ac2f98ba363eb8e60669ccea81ad829a3bb04c248c5e846f9 file.txt
ولو تلاحظون ان المخرج lowercase اذا كنت تبيه uppercase استخدم العَلم -u او --upper
csum file.txt -p -u -a md5 sha2-256
والمخرج راح يكون
# md5
292694A05BFD93EFAD1D772382DD674A file.txt
# sha2-256
BA8CAF17FDC0C93AC2F98BA363EB8E60669CCEA81AD829A3BB04C248C5E846F9 file.txt
التحقق من ال checksum الخاص بالملف
طريقة التحقق من ال checksum الخاص بالملف بسيطة جدآ مع اداة csum راح نتحقق الحين من ال checksum الخاص بتوزيعة Ubuntu راح تحط العَلم -v او --verify وبعده الهاش حق التوزيعة والخوارزميات الي تبيه يجربها وهو بيقولك اذا تطابق مع احد الخوارزميات الي دخلتها ولالا، راح ننسخ ال checksum من صفحة Ubuntu
csum ubuntu-22.04.1-desktop-amd64.iso -v c396e956a9f52c418397867d1ea5c0cf1a99a49dcf648b086d2fb762330cc88d -a sha2-256
والمخرج راح يكون
✔ Found match with `sha2-256`
وبالبساطة هذي تم التحقق من الملف، ووصل لنا بالشكل المطلوب
