הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   סיסמא לפנאל ניהול , הצפנה (https://hosts.co.il/forums/showthread.php?t=68700)

HOLD 23-10-08 21:50

סיסמא לפנאל ניהול , הצפנה
 
איך אני מצפין את הסיסמא של הפנאל ניהול (שאני מכין) ?

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

קוד:

    *  sha1_file()
    * crc32()
    * md5()
    * hash()

איפה לשמור את הסיסמא , אי אפשר לשמור במסד נתונים , זה לא הגיוני.
איפה הכי טוב לשמור אותה ?

תודה ,

vadimg88 23-10-08 21:54

במסד נתונים כנראה מוצפנת. כיום הצפנה רק בעזרת MD5 או כל פונקציה בודדת אחת זה לא ממש מספק. צריך משהו הרבה יותר חזק

http://www.phpfreaks.co.il/snippets/cat/Passwords.html

יש שם כמה גם דו כיווני וגם חד כיווני

HOLD 23-10-08 22:14

אפשר הסבר על העבודה עם שני אלה :
http://www.phpfreaks.co.il/snippet/P...ncryption.html
http://www.phpfreaks.co.il/snippet/S...5-Hashing.html

וגם איפה לאחסן את הסיסמא ??

vadimg88 23-10-08 22:39

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

זה הכל עכשיו המשתנה $encpass באחד מהשיטות שהשתמשת יכיל את הסיסמא המוצפנת שלך. השמירה הטובה ביותר כנראה תיהיה במסד.

omercnet 23-10-08 23:55

ציטוט:

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

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

קוד:

    *  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 עצמו לא נשמר שום אזכור ממשני לסיסמא של המשתמש.

קאפיש?

HOLD 24-10-08 01:27

לשמור סיסמא במסד נתונים זה קצת דפוק, לא?
להכין טבלה שלמה בשביל ערך אחד ?

Shon12 24-10-08 01:53

בשביל ערך אחד, למה?
אני חושב פה שכולם לא הבינו אותך וחשבו שיש כמה משתמשים ולא אחד.
אם יש אחד, בזמן שהמשתמש מזין פרטים נכונים תקבע בעוגייה את הסיסמא ב-MD5, לדוגמא:
PHP קוד:

if ($_POST['user'] == "omri" AND md5($_POST['password']) == "1234")
{
    
setcookie("lgoincookie",md5($_POST['password']),time()+3600);


מקווה שהבנת-בהצלחה.

vadimg88 24-10-08 11:39

הדרך הנפוצה ביותר היא שמירה במסד, במצב כזה אתה שולל את כל האפשרויות שמישהו יגנוב לך את העוגיות או אם תשמור את זה session גם כן יש סבירות שיכולים. במסד אם משהו ניגש אליך למסד אני די בטוח שהסיסמא זה לא הדבר הראשון שהוא ימחוק.

ושוב כמו שאמרתי כיום להצפין סיסמא סתם ב MD5 זה לא בטוח כל כך. לפחות תעשה

קוד:


$password = 'omri';

$encpass = md5(base64_encode( $password )); // encode with base64 then md5



כל הזמנים הם GMT +2. הזמן כעת הוא 18:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ