Generuję kod weryfikacyjny do aktywacji konta. Prawdopodobnie już wcześniej widziałeś takie rzeczy.Czy losowy ciąg to dobry kod weryfikacyjny
Moje pytanie: gdybym wygenerować ten kod ze złożonego wzoru jak poniżej:
md5(md5(time().'helloguys'.rand(0,9999)));
to jest naprawdę lepiej niż generowanie tylko losowy ciąg 32 znaków i liczb, takich jak gj3dI3OGwo5Enf...
?
Można rozważyć base32 kodowania swój wynik, dzięki czemu łatwiej jest użytkownikom rozróżnić znaki, które wyglądają podobnie w niektórych czcionki. –
Oprócz generowania losowej wartości (tj. Numeru weryfikacyjnego), jeśli 2 użytkowników zarejestruje się i wygeneruje dokładnie ten sam kod weryfikacyjny przez przypadek, możesz chcieć obsłużyć taki przypadek. Jeśli wyjątkowość ma znaczenie, myślę, że nawet mt_rand() może nie wystarczyć. –
Uważam, że kody weryfikacyjne będą przechowywane w bazie danych - umieść unikalny klucz w kolumnie, a przed włożeniem kodu weryfikacyjnego sprawdź, czy już istnieje w bazie danych, i generuj nowe klucze, dopóki nie znajdziesz takiego, nie był wcześniej używany. –