Я работаю над приложением, в котором пользователи должны звонить и вводить проверочный номер с клавиатуры своего телефона.
Я хотел бы иметь возможность определить, является ли число, которое они вводят, является правильным или нет. Телефонная система не имеет доступа к списку действительных номеров, но вместо этого проверяет номер по алгоритму (например, по номеру кредитной карты).
Вот некоторые из требований:
- Должно быть трудно ввести правильный случайный код
- Должно быть трудно иметь действительный код, если я сделаю опечатку (перестановка цифр, неправильная цифра)
- У меня должно быть разумное количество возможных комбинаций (скажем, 1М)
- Код должен быть максимально коротким, чтобы избежать ошибок со стороны пользователя
Учитывая эти требования, как бы вы сгенерировали такое число?
РЕДАКТИРОВАТЬ:
@Haaked: код должен быть числовым, потому что пользователь набирает его на своем телефоне.
@matt b: на первом шаге код отображается на веб-странице, второй шаг - вызвать и ввести код. Я не знаю номер телефона пользователя.
Продолжение: я нашел несколько алгоритмов для проверки правильности чисел (см. Этот интересный проект Google Code: checkDigits).