بعد تسجبل الدخول دعنا نجرب قراءة محتوى الملف data.txt
Bash:
cat data.txt
وكما تلاحظ ظهرت لدنيا كلمات مقروءة ولكن دون معنى ومنتهية بـ == ، ويفترض أن هذه الكلمات تم ترميزها بطريقة ما كما هو مذكور بوصف التحدّي، وأن نوع الترميز المُستخدم هو Base64
وكل ما علينا فعله الآن هو فك هذا التشفير أو بمعنى أدق فك هذا الترميز لاستراجع النص الأصلي، والذي سيكون عبارة عن كلمة مرورو المرحلة التاليه.
يمكن عمل ذلك بطريقتان: طريقة الحل الأولى: باستخدام سطر الأوامر عن طريق الأمر cat data.txt | base64 -d
Bash:
cat data.txt | base64 -d
حيث أن d- ترمز ل decode وهو يعني فك الترميز وكما تعرفنا سابقا على الـ pipline حيث أنه يعمل كأنبوب يأخد مخرجات الأمر الأول وهو cat ، كمدخلات للأمر الثاني وهو base64، ف هنا سيتم قراءة محتوى الملف باستخدام الأمر cat حيث انه يعرض محتوياته على شكل مخرجيات على سطر الاوامر وهذه المحتويات سيتم اخدها كمدخلات للـ base64 ليتم فك ترميزها كما هو موضَّح بالصورة أعلاه.
حيث نأخد محتوى الملف ونلصقه وتقوم الأداة بفك ترميزه بكل سهولة، ويمكنك البحث عن هذه الأدوات باستخدام محرك البحث Google عن طريقة مثلا كتابة ما يلي " online decoder "
وسيعرض لك صديقنا Google وفرة من المواقع.
التوضيح:
كنت قد شرحت مفهوم ترميز المعلومات أو الـ Encoding بالمقال التالي، حيث يمكنك الاطلاع عليه لمعرفة مفهومه بشكل عام
ما هو الـ encoding :
ببساطة هي عملية تحويل الداتا نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام اللي بنكتبه على الكيبورد نفسه يتم تحويله لـ لغة بقدر يفهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 فهيك هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله ل لغة اخر بفهمها الحاسوب حتى يقدر يتعامل معها ويعالجها ويخزنها وووو …
تبسيط للفكره …
انا بحكي عربي و انجليزي
وبدي اتواصل مع وحده اجنبية واسألها عن حالها واتواصل معها لكن المشكله انه لو اتكلم معها عربي ما رح تفهم علي اطلاقًا كونها لغة غريبه عليها ، ف بالحالة...
توضيح الـ Encoding
- ما هو الـ encoding : هي عملية تحويل البيانات نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام الذي نكتبه على الكيبورد نفسه يتم تحويله لـ لغة يستطيع فهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 ، فهكذا هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله لـ لغة اخر بفهمها الحاسوب حتى يستطيع التعامل معها ويعالجها ويخزنها الـخ …
- بعض أنواع الـ encoding ( ASCII , Base64 , HTML , HEX , URL )
- مصطلحات بعالم الـ Encoding : بداية علينا معرفة أن عملية تحويل الداتا من شكل لـ آخر نسمّيها بعمليَّة الـ encoding، وأن عملية ترجيعها للأصل والتي هي بعكس الـ encoding نسمّيها decoding، وهي عملية يمكن عكسها بسهولة ولذلك نقول عنها انها reversible أي يُمكن ان يتم عكسها واسترجاع النّص الأصليّ).
والآن دعونا نأخذ صورة عامّة عن ترميز Base64 : هو طريقة لترميز البيانات الثنائية (مثل الصور أو الملفات) إلى نصوص قابلة للقراءة بواسطة البشر human - readable، وذلك باستخدام مجموعة محددة من 64 رمزًا. حيث يُستخدم هذا الترميز بشكل شائع في نقل البيانات عبر بروتوكولات الإنترنت التي تتعامل مع النصوص، مثل البريد الإلكتروني وHTTP.
خطوات ترميز Base64:
1. تقسيم البيانات:
- يتم تقسيم البيانات الثنائية إلى مجموعات من 24 بت (3 بايت).
2. تقسيم البتات:
- تُقسم كل مجموعة من 24 بت إلى أربع مجموعات من 6 بت.
3. تحويل البتات إلى رموز:
- كل مجموعة من 6 بت تُحول إلى قيمة عشرية تتراوح بين 0 و63.
- تُستخدم هذه القيمة كفهرس للوصول إلى جدول Base64 الذي يحتوي على 64 رمزًا مختلفًا (A-Z, a-z, 0-9, +, /)، موضح أدناه.
4. إضافة الحشوات إذا لزم الأمر:
- إذا لم تكن البيانات الأصلية مضاعفًا لـ3 بايت، يتم إضافة أصفار في النهاية لتكوين مجموعة كاملة من 24 بت.
- يتم استخدام رمز "=" كحشوة للإشارة إلى أن الترميز الأصلي كان أقل من 3 بايت وهو ما لاحظاه بالنص الأصلي وجود علامات استفهام بنهايته.
لنأخذ مثال عملي بسيط على ذلك :
لنفترض أن لدينا النص "Man" ونريد ترميزه باستخدام Base64:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
- n: 01101110
2. دمج البايتات الثلاثة في سلسلة واحدة:
كود:
01001101 01100001 01101110
3. تقسيم السلسلة المدمجة إلى مجموعات من 6 بت:
كود:
(010011) (010110) (000101) (101110)
4. تحويل كل مجموعة من 6 بت إلى قيمة عشرية:
46 , 5 , 22, 19
5. استخدام القيم العشرية كفهرس للوصول إلى جدول Base64:
T, W, F, u
النص المشفر هو "TWFu".
مثال باستخدام الحشوات:
إذا كان لدينا نص بطول غير مضاعف لـ3، مثل "Ma" الذي يتكون فقط من حرفين:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
2. دمج البايتين في سلسلة واحدة وإضافة أصفار للحشو لتكوين مجموعة كاملة من الـ24 بت:
كود:
(01001101)(01100001)(00000000)
3. تقسيم السلسلة المدمجة إلى مجموعات من الـ6 بتات وتحويلها لقيم عشرية ثم رموز Base64 كما سبق.
4. إضافة "=" كحشوة لتعويض النقص في الطول الأصلي.
الى هنا بفضل الله ينتهي شرح هذه المرحلة، انتظروني بالمرحلة القادمة، دمتم بخير.
بعد تسجبل الدخول دعنا نجرب قراءة محتوى الملف data.txt
Bash:
cat data.txt
مشاهدة المرفق 12811
وكما تلاحظ ظهرت لدنيا كلمات مقروءة ولكن دون معنى ومنتهية بـ == ، ويفترض أن هذه الكلمات تم ترميزها بطريقة ما كما هو مذكور بوصف التحدّي، وأن نوع الترميز المُستخدم هو Base64
وكل ما علينا فعله الآن هو فك هذا التشفير أو بمعنى أدق فك هذا الترميز لاستراجع النص الأصلي، والذي سيكون عبارة عن كلمة مرورو المرحلة التاليه.
يمكن عمل ذلك بطريقتان: طريقة الحل الأولى: باستخدام سطر الأوامر عن طريق الأمر cat data.txt | base64 -d
Bash:
cat data.txt | base64 -d
مشاهدة المرفق 12915
حيث أن d- ترمز ل decode وهو يعني فك الترميز وكما تعرفنا سابقا على الـ pipline حيث أنه يعمل كأنبوب يأخد مخرجات الأمر الأول وهو cat ، كمدخلات للأمر الثاني وهو base64، ف هنا سيتم قراءة محتوى الملف باستخدام الأمر cat حيث انه يعرض محتوياته على شكل مخرجيات على سطر الاوامر وهذه المحتويات سيتم اخدها كمدخلات للـ base64 ليتم فك ترميزها كما هو موضَّح بالصورة أعلاه.
طريقة الحل الثانية: باستخدام أدوات لفك التشفير والترميز أونلاين مثل الموقع التالي: https://www.base64decode.org/ مشاهدة المرفق 12918
حيث نأخد محتوى الملف ونلصقه وتقوم الأداة بفك ترميزه بكل سهولة، ويمكنك البحث عن هذه الأدوات باستخدام محرك البحث Google عن طريقة مثلا كتابة ما يلي " online decoder "
وسيعرض لك صديقنا Google وفرة من المواقع.
التوضيح:
كنت قد شرحت مفهوم ترميز المعلومات أو الـ Encoding بالمقال التالي، حيث يمكنك الاطلاع عليه لمعرفة مفهومه بشكل عام
ما هو الـ encoding :
ببساطة هي عملية تحويل الداتا نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام اللي بنكتبه على الكيبورد نفسه يتم تحويله لـ لغة بقدر يفهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 فهيك هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله ل لغة اخر بفهمها الحاسوب حتى يقدر يتعامل معها ويعالجها ويخزنها وووو …
تبسيط للفكره …
انا بحكي عربي و انجليزي
وبدي اتواصل مع وحده اجنبية واسألها عن حالها واتواصل معها لكن المشكله انه لو اتكلم معها عربي ما رح تفهم علي اطلاقًا كونها لغة غريبه عليها ، ف بالحالة...
توضيح الـ Encoding
- ما هو الـ encoding : هي عملية تحويل البيانات نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام الذي نكتبه على الكيبورد نفسه يتم تحويله لـ لغة يستطيع فهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 ، فهكذا هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله لـ لغة اخر بفهمها الحاسوب حتى يستطيع التعامل معها ويعالجها ويخزنها الـخ …
- بعض أنواع الـ encoding ( ASCII , Base64 , HTML , HEX , URL )
- مصطلحات بعالم الـ Encoding : بداية علينا معرفة أن عملية تحويل الداتا من شكل لـ آخر نسمّيها بعمليَّة الـ encoding، وأن عملية ترجيعها للأصل والتي هي بعكس الـ encoding نسمّيها decoding، وهي عملية يمكن عكسها بسهولة ولذلك نقول عنها انها reversible أي يُمكن ان يتم عكسها واسترجاع النّص الأصليّ).
والآن دعونا نأخذ صورة عامّة عن ترميز Base64 : هو طريقة لترميز البيانات الثنائية (مثل الصور أو الملفات) إلى نصوص قابلة للقراءة بواسطة البشر human - readable، وذلك باستخدام مجموعة محددة من 64 رمزًا. حيث يُستخدم هذا الترميز بشكل شائع في نقل البيانات عبر بروتوكولات الإنترنت التي تتعامل مع النصوص، مثل البريد الإلكتروني وHTTP.
خطوات ترميز Base64:
1. تقسيم البيانات:
- يتم تقسيم البيانات الثنائية إلى مجموعات من 24 بت (3 بايت).
2. تقسيم البتات:
- تُقسم كل مجموعة من 24 بت إلى أربع مجموعات من 6 بت.
3. تحويل البتات إلى رموز:
- كل مجموعة من 6 بت تُحول إلى قيمة عشرية تتراوح بين 0 و63.
- تُستخدم هذه القيمة كفهرس للوصول إلى جدول Base64 الذي يحتوي على 64 رمزًا مختلفًا (A-Z, a-z, 0-9, +, /)، موضح أدناه. مشاهدة المرفق 12919
4. إضافة الحشوات إذا لزم الأمر:
- إذا لم تكن البيانات الأصلية مضاعفًا لـ3 بايت، يتم إضافة أصفار في النهاية لتكوين مجموعة كاملة من 24 بت.
- يتم استخدام رمز "=" كحشوة للإشارة إلى أن الترميز الأصلي كان أقل من 3 بايت وهو ما لاحظاه بالنص الأصلي وجود علامات استفهام بنهايته.
لنأخذ مثال عملي بسيط على ذلك :
لنفترض أن لدينا النص "Man" ونريد ترميزه باستخدام Base64:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
- n: 01101110
2. دمج البايتات الثلاثة في سلسلة واحدة:
كود:
01001101 01100001 01101110
3. تقسيم السلسلة المدمجة إلى مجموعات من 6 بت:
كود:
(010011) (010110) (000101) (101110)
4. تحويل كل مجموعة من 6 بت إلى قيمة عشرية:
46 , 5 , 22, 19
5. استخدام القيم العشرية كفهرس للوصول إلى جدول Base64:
T, W, F, u
النص المشفر هو "TWFu".
مثال باستخدام الحشوات:
إذا كان لدينا نص بطول غير مضاعف لـ3، مثل "Ma" الذي يتكون فقط من حرفين:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
2. دمج البايتين في سلسلة واحدة وإضافة أصفار للحشو لتكوين مجموعة كاملة من الـ24 بت:
كود:
(01001101)(01100001)(00000000)
3. تقسيم السلسلة المدمجة إلى مجموعات من الـ6 بتات وتحويلها لقيم عشرية ثم رموز Base64 كما سبق.
4. إضافة "=" كحشوة لتعويض النقص في الطول الأصلي.
الى هنا بفضل الله ينتهي شرح هذه المرحلة، انتظروني بالمرحلة القادمة، دمتم بخير.
بعد تسجبل الدخول دعنا نجرب قراءة محتوى الملف data.txt
Bash:
cat data.txt
مشاهدة المرفق 12811
وكما تلاحظ ظهرت لدنيا كلمات مقروءة ولكن دون معنى ومنتهية بـ == ، ويفترض أن هذه الكلمات تم ترميزها بطريقة ما كما هو مذكور بوصف التحدّي، وأن نوع الترميز المُستخدم هو Base64
وكل ما علينا فعله الآن هو فك هذا التشفير أو بمعنى أدق فك هذا الترميز لاستراجع النص الأصلي، والذي سيكون عبارة عن كلمة مرورو المرحلة التاليه.
يمكن عمل ذلك بطريقتان: طريقة الحل الأولى: باستخدام سطر الأوامر عن طريق الأمر cat data.txt | base64 -d
Bash:
cat data.txt | base64 -d
مشاهدة المرفق 12915
حيث أن d- ترمز ل decode وهو يعني فك الترميز وكما تعرفنا سابقا على الـ pipline حيث أنه يعمل كأنبوب يأخد مخرجات الأمر الأول وهو cat ، كمدخلات للأمر الثاني وهو base64، ف هنا سيتم قراءة محتوى الملف باستخدام الأمر cat حيث انه يعرض محتوياته على شكل مخرجيات على سطر الاوامر وهذه المحتويات سيتم اخدها كمدخلات للـ base64 ليتم فك ترميزها كما هو موضَّح بالصورة أعلاه.
طريقة الحل الثانية: باستخدام أدوات لفك التشفير والترميز أونلاين مثل الموقع التالي: https://www.base64decode.org/ مشاهدة المرفق 12918
حيث نأخد محتوى الملف ونلصقه وتقوم الأداة بفك ترميزه بكل سهولة، ويمكنك البحث عن هذه الأدوات باستخدام محرك البحث Google عن طريقة مثلا كتابة ما يلي " online decoder "
وسيعرض لك صديقنا Google وفرة من المواقع.
التوضيح:
كنت قد شرحت مفهوم ترميز المعلومات أو الـ Encoding بالمقال التالي، حيث يمكنك الاطلاع عليه لمعرفة مفهومه بشكل عام
ما هو الـ encoding :
ببساطة هي عملية تحويل الداتا نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام اللي بنكتبه على الكيبورد نفسه يتم تحويله لـ لغة بقدر يفهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 فهيك هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله ل لغة اخر بفهمها الحاسوب حتى يقدر يتعامل معها ويعالجها ويخزنها وووو …
تبسيط للفكره …
انا بحكي عربي و انجليزي
وبدي اتواصل مع وحده اجنبية واسألها عن حالها واتواصل معها لكن المشكله انه لو اتكلم معها عربي ما رح تفهم علي اطلاقًا كونها لغة غريبه عليها ، ف بالحالة...
توضيح الـ Encoding
- ما هو الـ encoding : هي عملية تحويل البيانات نفسها من شكل لآخر فقط ، والاشكال الأخرى يمكن اعتبارها ك لُغات أخرى، مثلًا الكلام الذي نكتبه على الكيبورد نفسه يتم تحويله لـ لغة يستطيع فهمها الحاسوب وتُسمى بالباينري وتحتمل قيمتين هم 0 1 ، فهكذا هو ما زال نفس الكلام بنفس المعنى لكن فقط تمت ترجمته او تحويله لـ لغة اخر بفهمها الحاسوب حتى يستطيع التعامل معها ويعالجها ويخزنها الـخ …
- بعض أنواع الـ encoding ( ASCII , Base64 , HTML , HEX , URL )
- مصطلحات بعالم الـ Encoding : بداية علينا معرفة أن عملية تحويل الداتا من شكل لـ آخر نسمّيها بعمليَّة الـ encoding، وأن عملية ترجيعها للأصل والتي هي بعكس الـ encoding نسمّيها decoding، وهي عملية يمكن عكسها بسهولة ولذلك نقول عنها انها reversible أي يُمكن ان يتم عكسها واسترجاع النّص الأصليّ).
والآن دعونا نأخذ صورة عامّة عن ترميز Base64 : هو طريقة لترميز البيانات الثنائية (مثل الصور أو الملفات) إلى نصوص قابلة للقراءة بواسطة البشر human - readable، وذلك باستخدام مجموعة محددة من 64 رمزًا. حيث يُستخدم هذا الترميز بشكل شائع في نقل البيانات عبر بروتوكولات الإنترنت التي تتعامل مع النصوص، مثل البريد الإلكتروني وHTTP.
خطوات ترميز Base64:
1. تقسيم البيانات:
- يتم تقسيم البيانات الثنائية إلى مجموعات من 24 بت (3 بايت).
2. تقسيم البتات:
- تُقسم كل مجموعة من 24 بت إلى أربع مجموعات من 6 بت.
3. تحويل البتات إلى رموز:
- كل مجموعة من 6 بت تُحول إلى قيمة عشرية تتراوح بين 0 و63.
- تُستخدم هذه القيمة كفهرس للوصول إلى جدول Base64 الذي يحتوي على 64 رمزًا مختلفًا (A-Z, a-z, 0-9, +, /)، موضح أدناه. مشاهدة المرفق 12919
4. إضافة الحشوات إذا لزم الأمر:
- إذا لم تكن البيانات الأصلية مضاعفًا لـ3 بايت، يتم إضافة أصفار في النهاية لتكوين مجموعة كاملة من 24 بت.
- يتم استخدام رمز "=" كحشوة للإشارة إلى أن الترميز الأصلي كان أقل من 3 بايت وهو ما لاحظاه بالنص الأصلي وجود علامات استفهام بنهايته.
لنأخذ مثال عملي بسيط على ذلك :
لنفترض أن لدينا النص "Man" ونريد ترميزه باستخدام Base64:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
- n: 01101110
2. دمج البايتات الثلاثة في سلسلة واحدة:
كود:
01001101 01100001 01101110
3. تقسيم السلسلة المدمجة إلى مجموعات من 6 بت:
كود:
(010011) (010110) (000101) (101110)
4. تحويل كل مجموعة من 6 بت إلى قيمة عشرية:
46 , 5 , 22, 19
5. استخدام القيم العشرية كفهرس للوصول إلى جدول Base64:
T, W, F, u
النص المشفر هو "TWFu".
مثال باستخدام الحشوات:
إذا كان لدينا نص بطول غير مضاعف لـ3، مثل "Ma" الذي يتكون فقط من حرفين:
1. تحويل النص إلى ثنائي:
- M: 01001101
- a: 01100001
2. دمج البايتين في سلسلة واحدة وإضافة أصفار للحشو لتكوين مجموعة كاملة من الـ24 بت:
كود:
(01001101)(01100001)(00000000)
3. تقسيم السلسلة المدمجة إلى مجموعات من الـ6 بتات وتحويلها لقيم عشرية ثم رموز Base64 كما سبق.
4. إضافة "=" كحشوة لتعويض النقص في الطول الأصلي.
الى هنا بفضل الله ينتهي شرح هذه المرحلة، انتظروني بالمرحلة القادمة، دمتم بخير.
السلام عليكم ورحمة الله وبركاته، عزيزي الزائر هناك الكثير من خدمات المنتدى مغلقة على الزوّار وذلك تجنباً للمشاكل التقنية مع محركات البحث. يرجى التسجيل في المنتدى كي تحصل على صلاحية الدخول لباقي الاقسام والمستودع.