ציטוט:
נכתב במקור על ידי 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 עצמו לא נשמר שום אזכור ממשני לסיסמא של המשתמש.
קאפיש?