אלגוריתם לאימות ללא צורך בטבלה לשמירת נתונים
-
אני רוצה שכדי שגולש יוכל ליצור חשבון משתמש באתר, הוא יזין אימייל ואז בשלב שני הוא יקבל לינק עם קוד מסויים, ואם הוא ילחץ על הלינק שקיבל אוכל לאמת את אותו לקוח ואז יווצר לו חשבון המשתמש.
יש אופציה לעשות את זה בלי לעשות טבלה במסד נתונים אלא ע"י איזה מפתח שמאמת קשר בין הסיסמא לאימייל?תודה.
-
אני רוצה שכדי שגולש יוכל ליצור חשבון משתמש באתר, הוא יזין אימייל ואז בשלב שני הוא יקבל לינק עם קוד מסויים, ואם הוא ילחץ על הלינק שקיבל אוכל לאמת את אותו לקוח ואז יווצר לו חשבון המשתמש.
יש אופציה לעשות את זה בלי לעשות טבלה במסד נתונים אלא ע"י איזה מפתח שמאמת קשר בין הסיסמא לאימייל?תודה.
-
אני חושב שכן. אתה יכול לעשות הצפנה סימטרית על המייל שלו.
תיאורטית אולי זה לא מליון אחוז אבל מעשית אני חושב שזה בסדר.
הבעיה שהקוד יהיה רב פעמי (הוא יוכל לפתוח תמיד שוב חשבון אם זה שייך).
תוכל להוסיף לזה גם זמן להגביל את זה. -
@chagold המחלקה היא php_openssl.dll
צריך לאפשר אותה.
חוץ מזה בקוד כפי שהעתקת יש שגיאה בגלל המשתנה מערכת שלא קיים,
אבל בא תאמר לי איזה גירסת PHP את מריץ? -
@dovid 5.6
אני יכול לשדרג אם יש צורך. אבל זה עם הרבה קוד ישן ואני לא רוצה לשבור דברים אם לא צריך.אז כדאי שתשתמש בקוד הזה באמת, תנסה להריץ ככה
$method = 'AES-256-CBC'; $key = 'here very hard password and ultra long 1234'; $length = openssl_cipher_iv_length($method); $iv = openssl_random_pseudo_bytes($length); $encrypted = openssl_encrypt($pltxt, $method, $key, OPENSSL_RAW_DATA, $iv); $ctxt = base64_encode($encrypted) . '|' . base64_encode($iv); list($data, $iv) = explode('|', $encrypted); $iv = base64_decode($iv); $pltxt = openssl_decrypt($data, $method, $key, 0, $iv);אם יש שגיאה על הopen_ssl צריך להוסיף את ההרחבה php_openssl, אני לא יודע איך מוסיפים הרחבה בPHP, זה מקוה שיהיה פה מישהו שיענה.
בקוד הנ"ל ה -
@dovid 5.6
אני יכול לשדרג אם יש צורך. אבל זה עם הרבה קוד ישן ואני לא רוצה לשבור דברים אם לא צריך. -
@www רק הערב התפניתי להיכנס לזה.
הצלחתי ככה.
@dovid תודה.$pltxt='1@domain.com'; $method = 'AES-256-CBC'; $key = 'here very hard password and ultra long 1234'; $length = openssl_cipher_iv_length($method); $iv = openssl_random_pseudo_bytes($length); $encrypted = openssl_encrypt($pltxt, $method, $key, OPENSSL_RAW_DATA, $iv); $ctxt = base64_encode($encrypted) . '|' . base64_encode($iv); $array = explode('|', $ctxt); $data = $array[0]; $iv = base64_decode($array[1]); echo ($pltxt = openssl_decrypt($data, $method, $key, 0, $iv)) ;//1@domain.com -
@www רק הערב התפניתי להיכנס לזה.
הצלחתי ככה.
@dovid תודה.$pltxt='1@domain.com'; $method = 'AES-256-CBC'; $key = 'here very hard password and ultra long 1234'; $length = openssl_cipher_iv_length($method); $iv = openssl_random_pseudo_bytes($length); $encrypted = openssl_encrypt($pltxt, $method, $key, OPENSSL_RAW_DATA, $iv); $ctxt = base64_encode($encrypted) . '|' . base64_encode($iv); $array = explode('|', $ctxt); $data = $array[0]; $iv = base64_decode($array[1]); echo ($pltxt = openssl_decrypt($data, $method, $key, 0, $iv)) ;//1@domain.com
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות