Пример кода безопасности:
a35sfj9ksdf
Как я могу попросить пользователя ввести несколько символов (например, первый, четвертый и девятый) их кода безопасности, а затем проверить их? Основная сложность заключается в том, как хранить код безопасности в зашифрованном виде - если бы я хранил каждый символ по отдельности, шифрование было бы невероятно легко взломать.
Возможность, которая не была описана ни здесь, ни на Как хранить и проверять цифры, выбранные случайным образом из PIN / пароля , такова:
Теперь вы должны хранить управляемое количество n + 1 полей для кода безопасности длины n и все еще можете проверять одиночные (position, char) кортежи
вы можете выполнить эти шаги,
сохранить все нужные символы в массиве
сгенерировать n (длина кода пользователя) числослучайных чисел, где каждое число будет представлять символ вашего массива.
Затем объединить новые сгенерированные символы, чтобы сделать строку
Сохранитьстрока, использующая сеанс, и при запросе от пользователя просто сопоставьте код пользователя с сеансом
, вы также можете сделать простой сервис капчи, используя аналогичный способ
А как насчет использования substr ()?
substr("a35sfj9ksdf", 0, 1);
Это вернул бы 'a', первый символ
substr("a35sfj9ksdf", 4, 1);
Это вернет 4, 5-й символ
Так что-то вроде, пожалуйста, введите символ $ n и используйте
substr("a35sfj9ksdf", $n-1, 1);