Menu
CoddyTech

Salt חדש

חלק מהיחידה אימות ואבטחה במסלול ה-Node.js של Coddy. שיעור 3 מתוך 24.

אנשים יכולים לבחור באותה סיסמה. מלח הוא נתון אקראי שנכלל בעת גזירת מפתח הסיסמה המאוחסן. מלח חדש גורם לסיסמאות זהות להפיק מפתחות מאוחסנים שונים. המלח נשמר לצד המפתח; הוא לא חייב להיות סודי.

const salt = randomBytes(8).toString('hex');
// 8 בתים אקראיים המיוצגים באמצעות 16 תווים הקסדצימליים

יש ליצור את המלח בתוך הפונקציה שנקראת עבור כל סיסמה חדשה. ערך שנוצר פעם אחת עם הפעלת השרת היה בשימוש חוזר. גזרת מפתח באמצעות מלח קבוע לתרגול. אחסון סיסמאות דורש עכשיו מלח חדש בכל פעם. כאן, תרגלו רק יצירת מלח ובדיקת אורך הטקסט שלו, 32 תווים.

randomBytes משתמש במחולל מספרים אקראיים קריפטוגרפי. Math.random() לא מיועד לערכים רגישים מבחינת אבטחה. יש להשתמש בפונקציה הקריפטוגרפית שיובאה עבור המלח.

challenge icon

אתגר

קל

זהו פרויקט תרגול קטן. ההגדרה שלו כבר ניתנה; ערכו רק את exercise.js.

החזירו מלח אקראי חדש בן 16 בתים כהקסדצימלי בתוך salt. הריצו ושלחו בקשת GET אל /result פעמיים: כל תגובה מכילה מחרוזת הקסדצימלית שונה בת 32 תווים. אל תשתמשו במלח קבוע.

נסו בעצמכם

import { randomBytes } from 'node:crypto';
export function exercise() {
    return { salt: '00000000000000000000000000000000' };
}

כל השיעורים ביחידה אימות ואבטחה

תרגלו בעצמכם: Express אונליין