נתונים הם נכס חיוני בעולם הדיגיטלי של היום. יותר משמונה מיליון אנשים נופלים קורבן להאקרים מדי שנה ויותר מ-2200 מתקפות סייבר מתרחשות מדי יום. עם קצב מדאיג כזה של פשעי סייבר, זה הופך להיות בראש סדר העדיפויות להשתמש בשיטות עבודה מומלצות כדי להגן מפני האקרים. אחד ההיבטים החשובים ביותר של כל חשבון הוא הסיסמה שלו.
אם האקר מתפשר על הסיסמה שלך, הוא יכול לקבל גישה למידע האישי שלך, ואפילו לחשבון הבנק שלך, תוך דקות ספורות. למרות שזה נשמע מפחיד, אתה יכול ללמוד כיצד לאבטח את הסיסמאות שלך באמצעות שיטות עבודה מומלצות על ידי בניית תוכנית Python משלך כדי לבדוק את עוצמתה.
כללים שונים להגדרת סיסמאות חזקות
כמה כללי סיסמאות חזקות שאתה עשוי לשקול ליישם הם:
- הסיסמה צריכה להיות באורך 12 תווים לפחות. ככל שהסיסמה ארוכה יותר, כך קטן הסיכוי להתקפת כוח גס שתסכן אותה.
- הסיסמה צריכה להכיל שילוב של אותיות קטנות, אותיות רישיות, מספרים ותווים מיוחדים.
- הימנע מחזרה על תווים בסיסמה.
- זה לא אמור להכיל פרטים אישיים כמו שמות, מספרי טלפון או כל דבר שמישהו יכול לנחש בקלות.
- זה לא אמור להיות מילה נפוצה במילון, למרות שאתה יכול להשתמש במילים בביטויי סיסמה ארוכים יותר.
- הסיסמה לא צריכה להיות זהה עבור מספר חשבונות. אתה יכול להגדיר מנהל סיסמאות למילוי אוטומטי של סיסמאות שונות לאתרים שונים מבלי לזכור כל אחת מהן.
יש דרכים שונות לעשות זאת צור סיסמה בלתי שבירה שאתה יכול לזכור. חלקם משתמשים בחרוזי ילדים, ציטוטים מסרטים, שפה בתעשייה ועוד.
כיצד לבדוק את עוצמת הסיסמה שלך באמצעות Python
אתה יכול לבנות תוכנית לבדיקת חוזק הסיסמה על ידי בדיקת המאפיינים לעיל. עבור בנייה זו, תזדקק לשני מודולים: חוּט ו אוספים.
אתה יכול גם להשתמש ב getpass מודול להסתרת סיסמה כשהמשתמש מזין אותה. זה עוזר להגן על הסיסמה שלך כאשר אתה צריך להקליד אותה בפומבי. כדי להתקין getpass בסביבה המקומית שלך, פתח מסוף והקלד:
צִפצוּף להתקין getpass4
אתה יכול להשתמש במחלקה String כדי לבדוק אם תו הוא אות, ספרה או סמל. אתה יכול לעשות שימוש באוספים כדי לבדוק אם יש תווים בסיסמה שחוזרים על עצמם.
השתמש במילת המפתח def כדי להגדיר פונקציה בשם check_password_strength() והעבירו את הסיסמה שתקבלו כפרמטר אליה.
אתחול שישה משתנים: ספירת_אלפא נמוכה יותר, ספירת_אלפא עליונה, מספר_ספירת, ספירת_תווים מיוחדת, אורך, מְשׁוּתָף לאפס. אלה יבדקו נוכחות של אלפבית קטן, אותיות גדולות, ספרות, תווים מיוחדים, אורך, חזרה על תווים בסיסמה.
העבר את הסיסמה שתקבל מהמשתמש אל רשימה() פונקציה כדי להמיר אותו לרשימת תווים. באמצעות לולאת for, חזור על כל תו ברשימה. השתמש במשפט if-else כדי לבדוק אם התו הוא אלפבית קטן, אותיות גדולות, מספר או תו מיוחד ועדכן את הספירה בהתאמה.
אתה יכול להניח שכל דבר אחר מאלפבית, או מספר הוא תו מיוחד. להגבלה נוספת, ניתן לאחסן תווים מיוחדים כמחרוזת ולבדוק אם תו הסיסמה קיים בה. בנוסף, חלק מהאתרים מאפשרים לך להשתמש ברווחים לבנים בסיסמה. אתה יכול להגדיר משתנה אחר ולהגדיל אותו או לשקול אותו בספירת התווים המיוחדים עצמה.
יְבוּא חוּט
יְבוּא אוספיםdefcheck_password_power(סיסמה):
lower_alpha_count = upper_alpha_count = מספר_מספר = ספירת_תחרות מיוחדת = אורך = נפוץ = 0
ל char פנימה רשימה(סיסמה):
אםלְהַשְׁחִיר ב-string.ascii_lowercase:
lower_alpha_count += 1
אליף לְהַשְׁחִיר ב-string.ascii_uppercase:
upper_alpha_count += 1
אליף לְהַשְׁחִיר ב-string.digits:
number_count += 1
אַחֵר:
special_char_count += 1
תזדקק לרשימת סיסמאות או למסד נתונים כדי לבדוק אם הסיסמה של המשתמש נפוצה. אתה יכול להוריד רשימה של מיליון סיסמאות פופולריות מ מאגר GitHub Common-Credential של SecLists.
שמור את קובץ הטקסט בשם common_password_list.txt. השתמש במשפט with כדי לבצע טיפול חריג ופתח את קובץ הסיסמה במצב קריאה. להשתמש ב לקרוא() פונקציה לקבל את התוכן הקיים בקובץ ולאחסן אותו במשתנה בשם תוכן.
אם הסיסמה שהמשתמש מזין אינה קיימת ברשימת הסיסמאות הנפוצות, הגדל את הערך של המשתנה המשותף באחד.
עםלִפְתוֹחַ("common_password_list.txt", 'ר') כפי שקוֹבֶץ:
content = file.read()
אם הסיסמה אינה בתוכן:
נפוץ += 1
כדי לבדוק את אורך הסיסמה, פשוט העבירו אותה ל- לן() לתפקד ולבדוק אם הוא גדול או שווה לשתים עשרה. אם כן, הגדל את הערך של משתנה האורך.
אםלן(סיסמה) >= 12:
אורך += 1
כדי לבדוק חזרה על תווים בסיסמה, השתמש בתת-מחלקה Counter מאוספים. מונה הוא אוסף לא מסודר של צמדי מפתח וערכים כאשר המפתח הוא האלמנט עצמו והערך הוא ספירת האלמנט.
השתמש בשיטת הבנת הרשימות כדי ליצור רשימה של תווים חוזרים מהמילון שאתה מקבל באמצעות אוספים. חזור על המילון ובדוק אם ספירת הדמות גדולה מאחד. אם הספירה גדולה יותר, צרף אותה לרשימה ואחסן אותה ב-reperted.
countOfWords = אוספים. מונה (סיסמה)
repeted = [i for i ב-countOfWords אם countOfWords[i] > 1]
עכשיו כשיש לך את הערכים של המאפיינים הבודדים, אתחול משתנה בשם חוזק לאפס. כפי שהשם מרמז, תראה את המשתנה הזה כדי לבדוק את עוצמת הסיסמה. שיטת הניקוד היא מתוך שבע, נקודה אחת לכל הכללת תו ומאפיין של סיסמה חזקה.
בדוק אם ספירת האותיות הקטנות, האותיות הגדולות, המספרים, התווים המיוחדים גדולה או שווה לאחד והגדלה את העוצמה באחד עבור כל נוכחות. באופן דומה, בדוק אם האורך והמשתנה המשותף שווים לאחד ואם אורך התו החוזר שווה לאפס. אם זה נכון, הגדל את הערך של משתנה החוזק.
חוזק = 0
if lower_alpha_count >= 1:
חוזק += 1if upper_alpha_count >= 1:
חוזק += 1if number_count >= 1:
חוזק += 1if special_char_count >= 1:
חוזק += 1אם אורך == 1:
חוזק += 1אם נפוץ == 1:
חוזק += 1
אםלן(חוזר על עצמו)== 0:
חוזק += 1
השתמש במחרוזת מרובת השורות (שלושה מרכאות) כדי להציג מספר שורות טקסט בהצהרת הדפסה אחת. השתמש באינטרפולציית Sring המילולית או במחרוזות f או כדי להציג את ספירת המאפיינים. אתה יכול להשיג זאת על ידי כתיבה ו בתחילת המחרוזת בהצהרת ההדפסה ולסגור את המשתנים בסוגריים מסולסלים. אתה משתמש באינטרפולציה של מחרוזת מכיוון שהתוכן בתוך הצהרת ההדפסה הוא מחרוזת, אבל הערך של המשתנים הוא מספר שלם.
הדפס(ו"""לסיסמה שלך יש:-
{lower_alpha_count} אותיות קטנות
{upper_alpha_count} אותיות רישיות
{number_count} ספרות
{special_char_count} תווים מיוחדים
{length} אורך
{common} נפוץ
{חזר} חזר
"ציון סיסמה: {כוח}/7""")
לבסוף, השתמש בהצהרת הקלט כדי לקבל את הסיסמה מהמשתמש ולהעביר אותה ל- check_password_power פוּנקצִיָה. בהתבסס על עוצמת הסיסמה, התוכנית תציג את הציון יחד עם ספירת המאפיינים הקיימים בסיסמה.
סיסמה = קלט("הכנס את הסיסמא: ")
check_password_strength (סיסמה)
פלט של בודק חוזק סיסמאות
בהזנת סיסמה חזקה המבוססת על המאפיינים שהוזכרו, תוכנית Python מציגה את העוצמה כ-7/7:
בהזנת סיסמה חלשה ונפוצה, תוכנית Python מציגה את החוזק כ-1/7:
סיסמאות ואבטחה
למרות שאתה יכול להגדיר את הסיסמה החזקה ביותר אי פעם, ישנן דרכים אחרות שההאקר יכול לפרוץ למערכת שלך. 95% ממתקפות הסייבר הן תוצאה של טעות אנוש. אחת השיטות הנפוצות ביותר שהאקרים משתמשים בהם היא הנדסה חברתית. ההאקר עלול לשלוח לך קישורים מזויפים למדיה חברתית או לאתרי מסחר אלקטרוני שנראים לגיטימיים, אך יסכן את הסיסמה שלך אם תשתמש בהם.
כדי להגן מפני טכניקות אלו, הקפד לפתוח קישורים רק ממקור מהימן ורק להזין או לאחסן מידע חשוב בצורה מאובטחת.