# ايش هو ال checksum

**URL:** <https://discourse.aosus.org/t/topic/2574>\
**Category:** أمن المعلومات والخصوصية الرقمية\
**Tags:** امن\_المعلومات\
**Created:** [22 سبتمبر 2022، 8:31م UTC](https://discourse.aosus.org/t/topic/2574 "2022-09-22T20:31:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon28261051](https://discourse.aosus.org/letter_avatar_proxy/v4/letter/a/74df32/32.png) [@anon28261051](https://discourse.aosus.org/u/anon28261051)\
**Post date:** [22 سبتمبر 2022، 8:31م UTC](https://discourse.aosus.org/t/topic/2574/1 "2022-09-22T20:31:44Z")

</div>

![](https://cdn-cf-discourse.aosus.org/original/2X/a/aa54acf679f099f61086ae84657e0de356ba2578.png)

بسم الله الرحمن الرحيم، السلام عليكم، في هذه المقالة راح اكتب عن ال checksum ايش هو وايش فايدة مع تطبيق عملي.

> **المحتويات**
>
> - [تعريف الـ checksum](#h-1)
> - [خوارزميات التشفير أحادية الاتجاه](#h-2)
> - [الفائدة من الـ checksum](#h-3)
> - [طريقة انشاء checksum](#h-4)
> - [الانشاء](#checksum-5)
> - [التحقق](#checksum-6)
> - [المراجع](#h-7)

* * *

## ايش هو؟

ال checksum هو ال hash حق الملف بشكل مختصر، ويتم انشاء هذا ال hash بإحدى خوارزميات التشفير أحادية الاتجاه، بحيث يكون كبصمة او توقيع للملف.

## خوارزميات التشفير أحادية الاتجاه

هذي الخوارزميات تشفر المحتوى الي تمرره لها مع عدم القدرة على فك تشفيره، بمعنى ان عملية التشفير لها اتجاه واحد وهو التشفير فقط مع استحالة فك التشفير، ومن اشهر هذه الخوارزمات هم ([SHA2-256](https://en.wikipedia.org/wiki/SHA-2), [MD5](https://en.wikipedia.org/wiki/MD5)).

## ليه؟

سؤال مهم ليش الشي ذا موجود، وايش راح نسفيد منه؟ خوارزميات التشفير أحادية الاتجاه هي خوارزميات تستخدم للتاكد بعدم التلاعب بالبيانات وايضآ ضمان وصول البيانات بالشكل المطلوب، مثلآ في البلوكتشين يتم استخدامها مع كل بلوك وعملية تصير في الشبكة لضمان عدم تلاعب احد بالبيانات، ومثال اخر في توزيعة Ubuntu [يتم توفير ال checksum الخاص بالتوزيعة](https://releases.ubuntu.com/22.04/SHA256SUMS) للتاكد من وصلها لك بشكل كامل.

## كيف؟

انشاء checksum لملف سهل جدآ خصوصآ مع اداة [csum](https://github.com/TheAwiteb/csum) المكتوبة بلغة Rust الي توفرلك 22 خوارزمية احادية الاتجاه تقدر تستخدمها

### انشاء checksum

لانشاء checksum في اداة [csum](https://github.com/TheAwiteb/csum) راح تمرر الملف والخوارزميات الي تبيها تشتغل على الملف بعد الـ `-a` او `--algorithms` (لاتحدد خوارزميات اذا كنت تبي تحدد كل الخوارزميات)، راح نجرب نشغلها على ملف محتواه `مرحبآ أسس`

```bash
csum file.txt -a md5 sha2-256

```

راح يكون المخرج

```plaintext
file.txt md5 ➤ 292694a05bfd93efad1d772382dd674a
file.txt sha2-256 ➤ ba8caf17fdc0c93ac2f98ba363eb8e60669ccea81ad829a3bb04c248c5e846f9

```

واذا تبي تحطه في ملف اكيد الشكل الي فوق مو افضل شكل، عشان كذا تم توفير طريقة اخراج افضل تجيك لمن تحط عَلم `-p` او `--plaintext` وراح يكون بالشكل التالي

```bash
csum file.txt -p -a md5 sha2-256

```

والمخرج راح يكون

```plaintext
# md5
292694a05bfd93efad1d772382dd674a file.txt
# sha2-256
ba8caf17fdc0c93ac2f98ba363eb8e60669ccea81ad829a3bb04c248c5e846f9 file.txt

```

ولو تلاحظون ان المخرج lowercase اذا كنت تبيه uppercase استخدم العَلم `-u` او `--upper`

```bash
csum file.txt -p -u -a md5 sha2-256

```

والمخرج راح يكون

```plaintext
# md5
292694A05BFD93EFAD1D772382DD674A file.txt
# sha2-256
BA8CAF17FDC0C93AC2F98BA363EB8E60669CCEA81AD829A3BB04C248C5E846F9 file.txt

```

## التحقق من ال checksum الخاص بالملف

طريقة التحقق من ال checksum الخاص بالملف بسيطة جدآ مع اداة [csum](https://github.com/TheAwiteb/csum) راح نتحقق الحين من ال checksum الخاص بتوزيعة Ubuntu راح تحط العَلم `-v` او `--verify` وبعده الهاش حق التوزيعة والخوارزميات الي تبيه يجربها وهو بيقولك اذا تطابق مع احد الخوارزميات الي دخلتها ولالا، راح ننسخ ال checksum [من صفحة Ubuntu](https://releases.ubuntu.com/22.04/SHA256SUMS)

```bash
csum ubuntu-22.04.1-desktop-amd64.iso -v c396e956a9f52c418397867d1ea5c0cf1a99a49dcf648b086d2fb762330cc88d -a sha2-256

```

والمخرج راح يكون

```plaintext
✔ Found match with `sha2-256`

```

وبالبساطة هذي تم التحقق من الملف، ووصل لنا بالشكل المطلوب

## المراجع

[https://www.techspot.com/article/2199-what-is-checksum/](https://www.techspot.com/article/2199-what-is-checksum/)

> **[Checksum](https://en.wikipedia.org/wiki/Checksum)**
>
> A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data integrity but are not relied upon to verify data authenticity. The procedure which generates this checksum is called a checksum function or checksum algorithm. Depending on its design goals, a good checksum algorithm usually outputs a significantly different...

---

<div class="post-metadata">

**Author:** ![zer0-x](https://discourse.aosus.org/letter_avatar_proxy/v4/letter/z/e19adc/32.png) [@zer0-x](https://discourse.aosus.org/u/zer0-x)\
**Post date:** [23 سبتمبر 2022، 6:37ص UTC](https://discourse.aosus.org/t/topic/2574/2 "2022-09-23T06:37:52Z")

</div>

في توزيعات لينكس غالبًا ستجد أدوات تابعة للGNU utilities لحساب الchecksum، ليس هناك حاجة لأداة إضافية إلا إذا لم تجد الخوارزمية التي تريدها.

يمكنك استخدم أداة `sha256sum` أو `md5sum` على سبيل المثال.

---

<div class="post-metadata">

**Author:** ![anon28261051](https://discourse.aosus.org/letter_avatar_proxy/v4/letter/a/74df32/32.png) [@anon28261051](https://discourse.aosus.org/u/anon28261051)\
**Post date:** [23 سبتمبر 2022، 4:47م UTC](https://discourse.aosus.org/t/topic/2574/3 "2022-09-23T16:47:16Z")

</div>

نعم، لقد تم ذكر `csum` لعدد الخوارزميات الكبير الذي فيها، 22 خوارزمية. ايضآ جمالية الاداة، بالنسبة لي شكل والاوان مخرجات `csum` افضل من `sha256sum` و `md5sum`
