![]() |
# 1 |
חבר מתקדם
|
סיסמא לפנאל ניהול , הצפנה
איך אני מצפין את הסיסמא של הפנאל ניהול (שאני מכין) ?
יש את הפונקציות האלה - מישהו יכול להסביר לי מה הכי טובה לשימוש? קוד:
* sha1_file() * crc32() * md5() * hash() איפה הכי טוב לשמור אותה ? תודה , |
![]() |
![]() |
# 2 |
חבר מתקדם
|
במסד נתונים כנראה מוצפנת. כיום הצפנה רק בעזרת MD5 או כל פונקציה בודדת אחת זה לא ממש מספק. צריך משהו הרבה יותר חזק
http://www.phpfreaks.co.il/snippets/cat/Passwords.html יש שם כמה גם דו כיווני וגם חד כיווני |
![]() |
![]() |
# 3 |
חבר מתקדם
|
אפשר הסבר על העבודה עם שני אלה :
http://www.phpfreaks.co.il/snippet/P...ncryption.html http://www.phpfreaks.co.il/snippet/S...5-Hashing.html וגם איפה לאחסן את הסיסמא ?? |
![]() |
![]() |
# 4 |
חבר מתקדם
|
בהחלט, הראשון מהווה הצפנה דו כיוונית, זאת אומרת שאתה יכול להצפין מחרוזת כלשהי ואז לבצע פעולה הפוכה שתסיר את ההצפנה וזה יחזיר לך את הסיסמא שהוצפנה קודם לכן. לדוגמא הסיסמא שלך היא omri אז אתה צריך לקרוא לפונקציה בצורה הבאה ואז להכניס לפרמטר שלה את המילה omri במידה ואתה רוצה לשמור את זה איפשהו אתה פשוט מציב את זה לערך כלשהו :
קוד:
$password = 'omri'; $encpass = _enc($password); // now the password is encrypted $decpass = _dec($encpass); // now we decrypted the pass echo $password; // will output omri echo $encpass; // will output encrypted password echo $decpass; // will output the decrypted pass http://www.phpfreaks.co.il/snippet/P...ncryption.html השני היא הצפנה חד כיוונית זאת אומרת שלא תוכל לדעת אחר כך מה הייתה הסיסמא שלך לפני ההצפנה והשימוש בה נעשה כך: קוד:
$password = 'omri'; $encpass = EncryptedPassword($password); // now the password is encrypted echo $password; // will output omri echo $encpass; // will output encrypted password |
![]() |
![]() |
# 5 | |
אחראי פורום תחזוק שרתים
|
ציטוט:
מהסיבה הפשוטה שההזדהות היא חד פעמית, ואין באמת צורך לשלוף את הסיסמא עצמה, עדיף לשמור במסד נתונים HASH של סיסמאות, ולא הצפנה שלהם, מכיוון שאם מישהו כן שם את הידיים שלו על המחרוזת ה"מוצפנת" היא לא שווה כלום (בתאוריה) כי אי אפשר לפענח ממנה את הסיסמא המקורית (שוב, בתאוריה - עם קצת רצון וקצת יכולת גם פיל יכול ל**ין תרנגולת ![]() לכן מומלץ להשתמש באמת בMD5 ע"מ לשמור את הסיסמאות בDB, ואפילו יש לך פונקציה בSQL שתעשה את זה בשבילך ע"מ לא להטריח את הPHP בתכלס, מה שזה אומר, שאתה מוסיף משתמש אתה מוסיף אותו כך: PHP קוד:
וע"מ לעשות הזדהות, אתה עושה PHP קוד:
ובצורה הזו, בDB עצמו לא נשמר שום אזכור ממשני לסיסמא של המשתמש. קאפיש?
__________________
Omer Cohen
Information Security Specialist eBaY Inc |
|
![]() |
![]() |
# 6 |
חבר מתקדם
|
לשמור סיסמא במסד נתונים זה קצת דפוק, לא?
להכין טבלה שלמה בשביל ערך אחד ? |
![]() |
![]() |
# 7 |
חבר מתקדם
|
בשביל ערך אחד, למה?
אני חושב פה שכולם לא הבינו אותך וחשבו שיש כמה משתמשים ולא אחד. אם יש אחד, בזמן שהמשתמש מזין פרטים נכונים תקבע בעוגייה את הסיסמא ב-MD5, לדוגמא: PHP קוד:
__________________
Projector Lamps |
![]() |
![]() |
# 8 |
חבר מתקדם
|
הדרך הנפוצה ביותר היא שמירה במסד, במצב כזה אתה שולל את כל האפשרויות שמישהו יגנוב לך את העוגיות או אם תשמור את זה session גם כן יש סבירות שיכולים. במסד אם משהו ניגש אליך למסד אני די בטוח שהסיסמא זה לא הדבר הראשון שהוא ימחוק.
ושוב כמו שאמרתי כיום להצפין סיסמא סתם ב MD5 זה לא בטוח כל כך. לפחות תעשה קוד:
$password = 'omri'; $encpass = md5(base64_encode( $password )); // encode with base64 then md5 |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|