Command Palette

Search for a command to run...

מח

מחולל Bcrypt

צור ואמת גיבוב סיסמאות bcrypt בדפדפן עם מקדם עלות מתכוונן

מהו מחולל Bcrypt?

מחולל bcrypt הופך סיסמה פשוטה ל-hash של bcrypt: מחרוזת בת 60 תווים המאחסנת את הסיסמה בבטחה מבלי לשמור את הסיסמה עצמה. Bcrypt היא פונקציית גיבוב סיסמאות שתוכננה על ידי נילס פרובוס ודיוויד מזיירס בשנת 1999, בנויה על צופן Blowfish, והיא עדיין ברירת המחדל במסגרות כמו Laravel, Spring Security ו-Django (כאחד מכמה גיבובים נתמכים). כלי זה מייצר גיבוב מכל סיסמה ובמצב אימות בודק אם סיסמה תואמת ל-hash שכבר יש לך.

Bcrypt עושה שני דברים ש-SHA-256 גולמי לא עושה. זה מלחיץ כל גיבוב עם 16 בתים אקראיים שנאפים בפלט, כך ששני משתמשים עם אותה סיסמה מקבלים גיבובים שונים וטבלאות קשת מחושבות מראש הן חסרות תועלת. וזה איטי בכוונה: גורם עלות מ-4 עד 31 שולט בכמה סבבי הרחבת מפתח פועלים, מכפיל את העבודה עם כל שלב. האיטיות הזו היא כל העניין. גיבוב מהיר מאפשר לתוקף עם מסד נתונים שדלף לנסות מיליארדי ניחושים בשנייה ב-GPU; גיבוב עלות-12 bcrypt לוקח חמישית שנייה בערך מזמן המעבד, מה שמכסה תוקף בקומץ ניחושים בשנייה לכל ליבה, וזה מה שמונע ממסד נתונים גנוב להפוך לרשימה של סיסמאות בטקסט רגיל בן לילה.

פורמט הפלט מתאר את עצמו. hash כמו $2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW אורז ארבעה שדות מופרדים על ידי סימני דולר: הגרסה (2b), העלות (12), ולאחר מכן מלח Base64 בן 22 תווים ואחריו תקציר 31 התווים. מכיוון שהמלח והעלות נעים בתוך ה-hash, האימות אינו זקוק לשום דבר מלבד הסיסמה ומחרוזת ה-hash, וזה בדיוק מה שמצב האימות כאן משתמש בו.

הכל פועל בצד הלקוח בדפדפן שלך הסיסמה שאתה מקליד, ה-hash שאתה מדביק והמלח שנוצר לעולם לא עוזבים את הכרטיסייה, לא פוגעים בשרת ולא נוחתים בשום יומן. חלונית הרשת של כלי המפתחים שלך מציגה את הבקשות היחידות הן בדיקת שימוש ורשומת שימוש, הנושאות את הגדרת העלות אך לעולם לא את הסיסמה או ה-hash. אלגוריתם bcrypt מיושם ב-TypeScript טהור, כך שהכלי עובד גם במצב לא מקוון לאחר טעינת הדף. הפלט תואם בתים-עבור-בתים ל-OpenBSD, PHP password_hash (PASSWORD_BCRYPT), ספריות bcrypt של Node ומאמתי bcrypt בכל מסגרת מרכזית, כך ש-hash שנוצר כאן מאמת ביישום שלך ולהיפך.

דרך מהירה לנסות את מחולל הגיבוב bcrypt היא המדגם. In Generate, הקש Load Sample כדי למלא את סיכות סוללת הסוס הנכונה, השאר את מקדם העלות על 10, ולחץ על Generate Hash. אתה מקבל מחרוזת של 60 תווים שמתחילה $2b$10$, ולחיצה על Generate Hash שוב נותנת מחרוזת אחרת, כי המלח חדש בכל פעם. ב-Verify, Load Sample ממלא גיבוב מאוחסן ואותה סיסמה, ו-Verify מדווח Match (עלות 10). שנה את האות הראשונה ל-C גדולה והיא מדווחת ללא התאמה. הנסיעה הלוך ושוב היא מה שמחולל סיסמאות bcrypt צריך להוכיח.

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

  1. הזן סיסמה

    הקלד או הדבק את הסיסמה שברצונך ל-hash. Bcrypt משתמש ב-72 הבתים הראשונים של הסיסמה המקודדת UTF-8, כך שכל דבר ארוך יותר נקטע; הכלי מזהיר אותך כשזה קורה.

  2. בחר גורם עלות

    בחר עלות מ-4 עד 31 עם המחוון כל שלב מכפיל את זמן הגיבוב עלות 10 עד 12 היא הטווח הנפוץ למערכות כניסה לייצור בשנות ה-2020; עלויות גבוהות יותר עמידות יותר בפני פיצוח אך איטיות יותר גם בכל כניסה לגיטימית.

  3. ליצור את החשיש

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

  4. העתק אותו, או עבור לאימות

    העתק את ה-hash בן 60 התווים לטבלת המשתמש או התצורה שלך. כדי לבדוק סיסמה מול hash קיים, עבור למצב אימות, הדבק את ה-hash ואת סיסמת המועמד, ודוחות הכלים תואמים או לא תואמים באמצעות העלות והמלח המוטבעים ב-hash.

תכונות מפתח

  • צור ואמת

    Hash סיסמה חדשה או לבדוק סיסמה מול hash קיים bcrypt, שניהם בכלי אחד

  • גורם עלות מתכוונן

    סליידר מעלות 4 עד 31 עם הערכה חיה של איך העבודה גדלה ככל שמעלים אותה

  • מלח אקראי בכל פעם

    מלח חזק מבחינה קריפטוגרפית של 16 בתים נוצר לכל hash באמצעות Web Crypto API

  • פלט תואם סטנדרטי

    מייצר את הפורמט של $2b$ ש-OpenBSD, PHP password_hash, Laravel ו-Node bcrypt מקבלים כולם

Frequently Asked Questions

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

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

bcryptbcrypt generatorbcrypt hashpassword hashbcrypt verifyhash passwordbcrypt cost factorbcrypt onlinebcrypt hash generatorbcrypt password generatorpassword_hashsalt