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