البايتات والنص الست عشري
جزء من قسم المصادقة والأمان في رحلة 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 بالنظام الست عشري.
هذا التحويل قابل للعكس: فهو يغيّر التمثيل، لا المعلومات. ترميز كلمة مرور بالنظام الست عشري لا يحميها. يُتحقق من تجزئة كلمة المرور بإعادة حساب قيمة مشتقة بدلًا من فك ترميزها. هنا، المدخلات نص عادي، ويعيد التمرين تمثيلها بالنظام الست عشري كي تتمكن من مقارنة الصيغتين.
التحدي
سهلهذا مشروع تدريبي صغير. تم إعداد المشروع مسبقًا؛ عدّل exercise.js فقط.
أعِد حقل hex يحتوي على النص المُعطى بعد ترميزه كبايتات UTF-8 ثم بصيغة سداسية عشرية. أرسِل {"text":"Hi"} باستخدام POST إلى /result لتحصل على {"hex":"4869"}. يُرجع النص Ada القيمة 416461.
جرّب بنفسك
export function exercise({ text }) {
return { hex: text };
}
جميع دروس المصادقة والأمان
1كلمات المرور
البايتات والنص الست عشرياشتقاق مفتاح كلمة المرورقيمة Salt جديدةلا تخزّن كلمات المرور أبدًامقارنة بايتات المفتاحالتحقق من كلمة المرورقواعد التسجيلتدرّب بنفسك: Playground لـ Express