חישפתי וחיפשתי באתר, אך לא מצאתי מאמר המסביר כיצב להתשמש בשיטת MD5 להצפנת נתונים, ולכן החלטתי לכתוב את המאמר הזה.
טוב, אז בשביל מה בעצם צריך להצפין את הנתונים שלנו? בכמעט כל האתר הבנויים על טכנולוגית ASP, יש חלק כלשהו באתר המשלב שליפת נתונים מ-DB או הכנסת נתונים ל-DB.
זה יכול להיות מערכת בקרת כניסה וזה יכול להיות גם מערכת משוכללת לפתיחת תת - אתרים. בשורה התחתונה, כמעט בכולם מעורב קובץ DB.
במקרה ויש לנו סיסמאות ב-DB, אנחנו רוצים שאם מישהו יצליח להעתיק את הDB (ואנחנו ממש לא רוצים את זה) הוא לא יוכל להבין את הסיסמאות, ולכן לא יוכל להיכנס לחשבונות של משתמשים.
בשביל זה יש לנו שיטות הצפנה, וביניהן MD5.
MD5 זו בעצם שיטת הצפנה הנפוצה ביותר בעולם.
היא שיטה חד כיוונית.
חד כיוונית אומר שאי אפשר לפענח אותה, ולכן ע"מ לבדוק האם הסיסמא נכונה, עלינו להפוך את הטקסט שהמשתמש הקליד (נגיד, את שם המשתמש שלו בבקרת הכניסה) לטקסט מוצפן, ולאחר מכן להשוות עם ה-DB.
נשמע מסובך? ממש לא....
קודם כל, עליכם להוריד את הקובץ הבא מכאן. (אם הקישור לא פעיל, פשוט תריצו בגוגל "MD5")
דוגמא של קוד MD5:
<%password = md5(Request.Form("password"))%>
תמיד אבל תמיד יש להכליל את הקובץ md5.asp. בלעדי זה, הקוד לא יעבוד.
במקרה של הקוד הזה, הטקסט שיגיע מהטופס יהפוך לטקסט מוצפן.
לדוגמא: אם נשלח את הטקסט "123" הקוד יהפוך את הטקסט שכתבנו לטקסט הזה: fc68e519c624b03bd6cadfcb33204
במקרה ואנחנו רוצים להכניס משתנה במקום "Request.Form", עלינו להכניס אותו עם מרכאות כפולות.
דוגמא לקוד לא טוב של הצפנת משתנה:
<%
yarin = "123"
password = md5(yarin)
%>
במקרה של הקוד השגוי הזה, המחשב יצפין לנו את הטקסט "Yarin" ולא את הערך שהמשתנה הזה מייצג (123).
ע"מ להצפין את הערך שהמשתנה מייצג ולא את הטקסט עצמו, עלינו לשים את הקוד הבא:
<%
yarin = "123"
password = md5("" & yarin & "")
%>
חשוב לשים מרכאות כפולות, אחרת זה לא יעבוד.
הנה דוגמא של בדיקת זהות המשתמש.
(המערכת לוקחת את הטקסט שהמשתמש כתב בשדה ומצפינה אותו. לאחר מכן היא משווה אותו לטקסט ששמור לה בדטה).
<%
pass = md5(Request.Form("password"))
If Pass = Rs("UserPass") Then
העברה ללוח הבקרה
Else
העברה לדף שגיאה
End If
%>
זה הכל!
רק חשוב מאוד שאם אתה מתכוונים להשתמש בהצפנה לסיסמאות, חשוב גם להצפין את הסיסמא כאשר המשתמש נרשם לאתר (מכיוון שהמערכת משווה עם הסיסמא המוצפנת שנמצאת ב-DB).
ירין גאון, מתכנת ASP מזה מספר שנים בן 15.
אשמח לקבל תגובות :-)
|