View Single Post
ישן 23-10-08, 23:55   # 5
omercnet
אחראי פורום תחזוק שרתים
 
מיני פרופיל
תאריך הצטרפות: Aug 2006
גיל: 38
הודעות: 722

omercnet לא מחובר  

ציטוט:
נכתב במקור על ידי Omri2 צפה בהודעה
איך אני מצפין את הסיסמא של הפנאל ניהול (שאני מכין) ?

יש את הפונקציות האלה - מישהו יכול להסביר לי מה הכי טובה לשימוש?

קוד:
    *  sha1_file()
    * crc32()
    * md5()
    * hash()
איפה לשמור את הסיסמא , אי אפשר לשמור במסד נתונים , זה לא הגיוני.
איפה הכי טוב לשמור אותה ?

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

לכן מומלץ להשתמש באמת בMD5 ע"מ לשמור את הסיסמאות בDB, ואפילו יש לך פונקציה בSQL שתעשה את זה בשבילך ע"מ לא להטריח את הPHP

בתכלס, מה שזה אומר, שאתה מוסיף משתמש אתה מוסיף אותו כך:
PHP קוד:
$q mysql_query("INSERT INTO `users` (`user`,`pass`) VALUES ('$user', MD5('$pass'))"
שהמשתנים הם בעצם הקלט מהמשתמש (אחרי שעבר סינון תוכן כמובן).

וע"מ לעשות הזדהות, אתה עושה
PHP קוד:
$q mysql_query("SELECT id FROM `users` WHERE user='$user' AND pass=MD5('$pass')"); 
ושוב, המשתנים הם הקלט של המשתמש.

ובצורה הזו, בDB עצמו לא נשמר שום אזכור ממשני לסיסמא של המשתמש.

קאפיש?
__________________
Omer Cohen
Information Security Specialist
eBaY Inc
  Reply With Quote