גזירת מפתח מסיסמה
חלק מהיחידה אימות ואבטחה במסלול ה-Node.js של Coddy. שיעור 2 מתוך 24.
מפתח סיסמה מחושב מסיסמה וממלח. בניגוד לקידוד, החישוב הזה אינו מיועד להפיכה. Scrypt מקשה על ניחוש סיסמאות בכך שהוא דורש עבודה בכל ניסיון. עם אותה סיסמה, מלח והגדרות גזירה, כולל אורך המפתח, המפתח ניתן לשחזור. מפתח נגזר זה נקרא בדרך כלל גיבוב הסיסמה.
const key = await scryptAsync('invite 4821', 'example-only', 16);
return key.toString('hex');הארגומנט השלישי הוא אורך המפתח בבתים. העזר שסופק משתמש ב-promisify כדי להפוך את scrypt של Node, המבוססת על callback, לפונקציה שמחזירה promise. אפשר להשתמש בה עם await, כמו בקריאת קובץ. המלח הקבוע בתרגול הזה מאפשר לך להשוות תוצאות; באחסון אמיתי של סיסמאות משתמשים במלח אקראי חדש.
בתרגול הבא נוצרים המלח האקראי החדש הדרוש בעת אחסון סיסמה חדשה.
אתגר
קלזהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את exercise.js.
השלימו את הפונקציה: גזרו מפתח באורך 32 בייטים מהסיסמה והמלח שסופקו, ואז החזירו את הטקסט שלו בייצוג הקסדצימלי בתוך key. שלחו פעמיים POST עם {"password":"practice","salt":"fixed-for-this-exercise"} אל /result: אותו מפתח בן 64 התווים יופיע. שנו אחד מהקלטים, והמפתח ישתנה.
נסו בעצמכם
import { scryptAsync } from './crypto.js';
export async function exercise({ password, salt }) {
return { key: password };
}
כל השיעורים ביחידה אימות ואבטחה
1סיסמאות
בתים וטקסט הקסדצימליגזירת מפתח מסיסמהSalt חדשלעולם אל תשמרו סיסמאותהשוואת בתי המפתחבדיקת סיסמהכללי הרשמהתרגלו בעצמכם: Express אונליין