DevTulz Online

מחולל ומאמת Bcrypt

10
גבוה יותר = מאובטח יותר אך איטי יותר

מה זה Bcrypt?

Bcrypt היא פונקציית גיבוב סיסמאות שתוכננה לאבטחה. בניגוד לפונקציות גיבוב מהירות (MD5, SHA-1), bcrypt איטית במכוון באמצעות גורם עלות הניתן להגדרה — מה שהופך את מתקפות הכוח הגס לבלתי מעשיות. כל גיבוב כולל salt אקראי, כך שסיסמאות זהות מייצרות גיבובים שונים. גורם העלות (סיבובים) מכפיל את זמן החישוב לכל תוספת: עלות 10 לוקחת ~100ms, עלות 12 לוקחת ~400ms, עלות 14 לוקחת ~1.5s. לעולם אל תאחסן סיסמאות בטקסט רגיל — תמיד גבב אותן עם bcrypt או פונקציה אדפטיבית דומה.

כיצד להשתמש במחולל Bcrypt

  1. הזן את הסיסמה שלך בכרטיסייה 'Hash' ובחר גורם עלות (מומלץ 10–12 לרוב האפליקציות).

  2. לחץ על 'צור Hash' — גיבוב bcrypt מופיע למטה ומוכן לאחסון במסד הנתונים שלך.

  3. כדי לאמת סיסמה מול גיבוב קיים, עבור לכרטיסייה 'אימות'.

  4. הזן את הסיסמה בטקסט רגיל ואת גיבוב bcrypt השמור, ולחץ על 'אמת'.

  5. סימן ביקורת ירוק מאשר התאמה; אדום אומר שהסיסמה שגויה.

שאלות נפוצות

איזה cost factor כדאי להשתמש? עבור רוב יישומי אינטרנט, cost factor של 10–12 הוא איזון טוב בין אבטחה וביצועים. Cost 10 (~100ms) הוא המינימום המומלץ. השתמש ב-12 (~400ms) לחשבונות בעלי ערך גבוה. הימנע ללכת מתחת ל-10, כי זה הופך התקפות brute-force למהירות יותר.

למה שני hashes של אותה סיסמה נראים שונים? Bcrypt יוצר באופן אוטומטי salt אקראי בן 22 תווים עבור כל hash ומטביע אותו בפלט. פירוש הדבר שאותה סיסמה כאשר עוברת hash פעמיים, יוצרת מחרוזות שונות, וזה בעיצוב — זה מונע rainbow table attacks.

מה פירוש פורמט מחרוזת bcrypt hash? bcrypt hash נראה כמו $2b$12$SaltSaltSaltSaltSaltSaHashHashHashHashHashHashHashHas. ה-$2b$ הוא גרסת האלגוריתם, $12$ הוא cost factor, ואחריו 22 תווים של salt מקודד ב-Base64 ו-31 תווים של hash.

האם אני יכול להשתמש בזה כדי לאמת סיסמאות מה-database שלי? כן. הדבק את ה-bcrypt hash המאוחסן מה-database שלך ואת הסיסמה בטקסט רגיל לכרטיסייה Verify. הכלי יוודא אם הם תואמים, וזה שימושי לדיבוג של בעיות כניסה במהלך הפיתוח.

Keywords: מחולל bcrypt, גיבוב bcrypt אונליין, מאמת bcrypt, גיבוב סיסמאות, גורם עלות bcrypt, גיבוב סיסמה bcrypt, בודק bcrypt