Menu
CoddyTech

البايتات والنص الست عشري

جزء من قسم المصادقة والأمان في رحلة Node.js على Coddy. الدرس 1 من 24.

تعمل الدوال التشفيرية مع البايتات. البايت هو عدد من 0 إلى 255. يرمّز UTF-8 النص على هيئة بايتات، ويحتوي Buffer على تلك البايتات في Node. يكتب النظام الست عشري، أو hex، كل بايت باستخدام محرفين، بأرقام من 0 إلى 9 وأحرف من a إلى f. وهذا يجعل تخزين البايتات كنص أمرًا ملائمًا.

const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'

قيمة البايت للحرف O هي 79 بالنظام العشري، وتُكتب 4f بالنظام الست عشري.

هذا التحويل قابل للعكس: فهو يغيّر التمثيل، لا المعلومات. ترميز كلمة مرور بالنظام الست عشري لا يحميها. يُتحقق من تجزئة كلمة المرور بإعادة حساب قيمة مشتقة بدلًا من فك ترميزها. هنا، المدخلات نص عادي، ويعيد التمرين تمثيلها بالنظام الست عشري كي تتمكن من مقارنة الصيغتين.

challenge icon

التحدي

سهل

هذا مشروع تدريبي صغير. تم إعداد المشروع مسبقًا؛ عدّل exercise.js فقط.

أعِد حقل hex يحتوي على النص المُعطى بعد ترميزه كبايتات UTF-8 ثم بصيغة سداسية عشرية. أرسِل {"text":"Hi"} باستخدام POST إلى /result لتحصل على {"hex":"4869"}. يُرجع النص Ada القيمة 416461.

جرّب بنفسك

export function exercise({ text }) {
    return { hex: text };
}

جميع دروس المصادقة والأمان

تدرّب بنفسك: Playground لـ Express