אלגוריתם לאימות ללא צורך בטבלה לשמירת נתונים
-
אני רוצה שכדי שגולש יוכל ליצור חשבון משתמש באתר, הוא יזין אימייל ואז בשלב שני הוא יקבל לינק עם קוד מסויים, ואם הוא ילחץ על הלינק שקיבל אוכל לאמת את אותו לקוח ואז יווצר לו חשבון המשתמש.
יש אופציה לעשות את זה בלי לעשות טבלה במסד נתונים אלא ע"י איזה מפתח שמאמת קשר בין הסיסמא לאימייל?תודה.
-
אני חושב שכן. אתה יכול לעשות הצפנה סימטרית על המייל שלו.
תיאורטית אולי זה לא מליון אחוז אבל מעשית אני חושב שזה בסדר.
הבעיה שהקוד יהיה רב פעמי (הוא יוכל לפתוח תמיד שוב חשבון אם זה שייך).
תוכל להוסיף לזה גם זמן להגביל את זה. -
אז כדאי שתשתמש בקוד הזה באמת, תנסה להריץ ככה
$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, זה מקוה שיהיה פה מישהו שיענה.
בקוד הנ"ל ה -
@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
6/9