מודול Base64 של Python הוא כלי רב עוצמה לקידוד ופענוח הודעות. אתה יכול להשתמש בו כדי לשלוח נתונים בצורה מאובטחת דרך האינטרנט. זהו נוהל סטנדרטי עבור אתרי אינטרנט, אפליקציות ושירותי תקשורת להשתמש בסוג זה של קידוד כדי להגן על נתונים רגישים מפני האקרים עוינים.
למודול Base64 יש זוג פונקציות בהן תוכל להשתמש כדי לקודד ולפענח הודעות, מה שמוסיף קצת אבטחה נוספת להעברת הנתונים שלך.
מודול Tkinter ו-Base64
Tkinter מאפשר לך ליצור יישומי שולחן עבודה. הוא מציע מגוון של ווידג'טים כמו לחצנים, תוויות ותיבות טקסט שמקלים על פיתוח יישומים ללא מאמץ רב מדי. אתה יכול ליצור תוכניות GUI מדהימות עם Tkinter. אתה עלול לבנות מחשבון פשוט, אפליקציית רשימת מטלות או א משחק בדיקת הקלדה. כדי להתקין את Tkinter במערכת שלך, פתח את המסוף שלך והקלד:
pip להתקין tkinter
BASE64 מספק פונקציות לקידוד נתונים בינאריים ל-ASCII בפענוחם חזרה לבינארי. הוא תומך גם בקידוד סטנדרטי וגם בקידוד בטוח ב-URL מה שהופך את העברת המידע לאבטחה יותר. כדי להמיר מחרוזת לתו Base64, קבל את ערך ASCII של כל תו וחשב את הבינארי של 8 סיביות שלו. המר את החלק הזה של 6 סיביות על ידי קיבוץ מחדש של הספרות והמרתן מחדש לערכיהן העשרוניים. לבסוף, השתמש בטבלת הקידוד Base64 כדי לקבל את ערכי Base64 עבור כל עשרוני.
כיצד לקודד ולפענח הודעות בפייתון
אתה יכול למצוא את קוד המקור של הפרויקט הזה בו מאגר GitHub.
התחל בייבוא שני המודולים. אתחל את המופע של Tkinter והצג את חלון השורש. הגדר את הכותרת, המידות בפיקסלים וצבע הרקע של החלון.
מ tkinter יְבוּא *
יְבוּא base64
root = Tk()
root.geometry('750x400')
root.configure (background='אקווה')
root.title("קודד ופענח הודעות באמצעות Python")
השתמש בווידג'טים של תווית כדי להציג מידע שימושי על היישום. התווית מקבלת חלון אב שבו ברצונך למקם אותו, את הטקסט שעליו להציג ואת סגנון הגופן, הצבע וצבע הרקע. להשתמש חבילה() כדי לארגן את הווידג'ט בבלוק פריסה לפני הצבתו בווידג'ט האב. StringVar מקל על השליטה בערך של ווידג'ט כמו תווית או ערך.
תווית (שורש, טקסט='מקודד ומפענח הודעות Python', גופן='אריאל 25 מודגש', fg='לבן', bg="סָגוֹל").חבילה()
טקסט = StringVar()
key = StringVar()
mode = StringVar()
תוצאה = StringVar()
הגדר פונקציה לְהַצְפִּין() שמקבל מפתח לקידוד ופענוח יחד עם ההודעה. הגדירו רשימה ריקה וחזרו עד אורך ההודעה. הגדר את האינדקס של מפתח כמודולוס של הפעולה ואחסן את הערך שלו במשתנה key_c. להשתמש ord() כדי לקבל את ערך Unicode של התו ולהשתמש בו chr() כדי לקבל את התו שמייצג את הערך שצוין.
הוסף ערך זה לרשימה. הצטרף לכל רכיב ברשימה עם מחרוזת ריקה והשתמש ב- לְהַצְפִּין() שיטה להחזרת גרסה מקודדת utf-8 של המחרוזת. ה base64.urlsafe_b64encode() השיטה מקודדת את הקלט הזה ומחליפה את - ב-+ ו-_ ב-/.
defלְהַצְפִּין(מפתח, הודעה):
enc = []ל אני ב טווח (len (הודעה)):
key_c = key[i % len (key)]
enc.append (chr((ord (הודעה[i]) + ord (key_c)) % 256))
לַחֲזוֹר base64.urlsafe_b64encode("".join (enc).encode()).decode()
הגדר פונקציה לְפַעֲנֵחַ() שמקבל מפתח לקידוד ופענוח יחד עם ההודעה. הגדר רשימה ריקה ופענח את ההודעה. חזרו עד אורך ההודעה והגדרו את מודול הפעולה כאינדקס ואחסנו את הערך שלה ב-key_c. הוסף את התו של פענוח ההודעה במחרוזת Unicode כפי שמוצג להלן. החזר את המחרוזת המפוענחת.
defלְפַעֲנֵחַ(מפתח, הודעה):
דצמבר = []
message = base64.urlsafe_b64decode (message).decode()ל אני ב טווח (len (הודעה)):
key_c = key[i % len (key)]
dec.append (chr((256 + ord (הודעה[i]) - ord (key_c)) % 256))
לַחֲזוֹר"".join (בדצמבר)
הגדר פונקציה מצב() שמקבל את המצב שהוזן על ידי המשתמש בווידג'ט הכניסה וקורא לפונקציה המתאימה לפי הבחירה. במקרה שהמשתמש לא מזין תגובה חוקית, הצג הודעת שגיאה.
defמצב():
אם (mode.get() == 'ה'):
Result.set (קידוד (key.get(), Text.get()))
אליף (mode.get() == 'ד'):
Result.set (פענוח (key.get(), Text.get()))
אַחֵר:
Result.set('מצב לא חוקי')
הגדר פונקציה יְצִיאָה() להרוג ולסיים את המתורגמן הפועל ברקע. הגדר פונקציה Reset() כדי לנקות את התוכן של השדה Entry.
defיְצִיאָה():
root.destroy()
defאִתחוּל():
Text.set("")
סט מפתחות("")
mode.set("")
Result.set("")
הגדר ווידג'טים של תווית וערך עבור הודעה, מפתח, מצב וטקסט. ציין את חלון האב שבו תרצה למקם אותם, סגנון הגופן, הטקסט וצבע הרקע. הגדר גם את הקואורדינטות כדי לארגן אותן.
תווית (שורש, גופן='אריאל 17 מודגש', טקסט='הוֹדָעָה', fg='שָׁחוֹר', bg="אקווה").place (x=60, y=100)
ערך (שורש, גופן='אריאל 15', textvariable=טקסט, bg='לבן').place (x=450, y=100)תווית (שורש, גופן='אריאל 17 מודגש', טקסט='מַפְתֵחַ', fg='שָׁחוֹר', bg="אקווה").place (x=60, y=130)
ערך (שורש, גופן='אריאל 15', textvariable=key, bg='לבן').place (x=450, y=130)תווית (שורש, גופן='אריאל 17 מודגש', טקסט='מצב (E-Encode, D-Decode)', fg='שָׁחוֹר', bg="אקווה").place (x=60, y=160)
ערך (שורש, גופן='אריאל 15', textvariable=mode, bg='לבן').place (x=450, y=160)
תווית (שורש, גופן='אריאל 17 מודגש', טקסט='טֶקסט', fg='שָׁחוֹר', bg="אקווה").place (x=60, y=190)
ערך (שורש, גופן='אריאל 15 מודגש', textvariable=תוצאה, bg='לבן').place (x=450, y=190)
באופן דומה, הגדר שלושה לחצנים כדי להציג את התוצאה, לאפס את השדות ולעצור את התוכנית. ללחצנים יש פרמטר מיוחד שנקרא command שמקבל פונקציה ומבצע אותה בלחיצה.
לחצן (שורש, גופן='אריאל 15 מודגש', טקסט='תוֹצָאָה', padx=2, bg='אפור בהיר', command=Mode).place (x=100, y=240)
לחצן (שורש, גופן='אריאל 15 מודגש', טקסט='אִתחוּל', רוחב=6, command=איפוס, bg='ירוק', padx=2).place (x=300, y=240)
לחצן (שורש, גופן='אריאל 15 מודגש', טקסט='תפסיק', רוחב=6, command=יציאה, bg='אָדוֹם', padx=2, פאדי=2).place (x=500, y=240)
ה mainloop() הפונקציה אומרת לפייתון להפעיל את לולאת האירועים של Tkinter ולהקשיב לאירועים (כגון לחיצות כפתורים) עד לסגירת החלון.
root.mainloop()
מקודד/מפענח ההודעות בפעולה
בהפעלת התוכנית, התוכנית מציגה חלון שבו עליך להזין הודעה, מפתח ומצב. בבחירת מצב קידוד עם מפתח של 2009, ההודעה לעשות שימוש ב הופך ל f8KRwpvCnlLChcKjwp5Sf8KW.
באופן דומה, בהעתקת ההודעה המקודדת והדבקתה בחזרה לקלט לפענוח עם אותו הדבר, אתה מקבל את ההודעה המקורית בחזרה.
אבטחת סייבר באמצעות Python
אתה יכול להשתמש ב-Python כדי לכתוב סקריפטים שמייצרים אוטומציה של בדיקות אבטחה, ניטור רשתות וסריקה לאיתור פגיעויות. אתה יכול להשתמש בו כדי ליצור יישומים חזקים המשתמשים באימות כדי להוריד את הסיכוי שתוקף יפגע בנתונים שלך.
מומחי אבטחת סייבר משתמשים לעתים קרובות ב-Python כדי לבנות חומות אש של יישומי אינטרנט כדי לנטר אפליקציה. הם יכולים לבצע ניתוח זיהוי איומים באמצעות Machine Learning. עם ארכיטקטורה זו, הרבה יותר קל ליצור בדיקות חדירה מותאמות אישית ולאמת פרוטוקולי אבטחה.