Безопасность при ошибках / исправление идентификатора ресурса
-
27-10-2019 - |
Вопрос
Получателем является мой веб-сайт, отправитель тот же, но носитель шумный, пользователь. Он прочитает буквенно-цифровой код длиной 6 и позже введет тот же код для идентификации ресурса. Я подумал, что это хорошее применение для кода исправления ошибок, и вместо того, чтобы проводить исследование, я подумал, что просто поставлю вопрос там. Или я могу поступить неправильно, поскольку ситуация больше похожа на отправку идеального словаря вместе с каждой передачей.
Требования к коду просты:
- 6 буквенно-цифровых цифр, в любом случае, пока я не кончу.
- Если пользователь ошибается, я все равно смогу определить нужный ресурс.
- Нет предпочтительнее неправильного ресурса.
- Легко кодировать или иметь бесплатные библиотеки для .net
Есть предложения?
Изменить:
Мне кажется, половину требований можно выполнить, если грамотно подобрать коды, т.е. с достаточным расстоянием между ними. Эта стратегия выглядит еще лучше, когда я понимаю, что чем дольше прошло с момента создания кодов, тем меньше вероятность их использования.
Коды не будут вводиться прямо на моем веб-сайте, поэтому я не могу дать немедленный ответ. Фактически, мы можем предположить, что, если я не смогу проверить код, я даже не смогу идентифицировать пользователя, поэтому я вообще не могу дать обратную связь.
Решение
Что ж, нет, в первую очередь нужно проверить, правильно ли ввел пользователь номер. Ошибка при вводе числа или строки человеком составляет 99% проблемы. Это хорошо зарекомендовало себя на практике: контрольная цифра используется во многих распространенных кодах, UPC и ISBN являются те, которые вы видите каждый день. Вы можете отметить это, они могут набрать его снова.
Коды исправления ошибок тоже распространены, но имеют совершенно другое применение. Традиционно он используется в цифровых сигнальных средах с целью обнаружения и исправления битовых ошибок. Рид-Соломон - это ста-фунтовая горилла, действительно отмеченная на музыкальном компакт-диске.
На практике это не очень хорошо работает с людьми: они введут как минимум 6 бит неверных данных, неправильно набрав один ключ. Это очень сложно исправить, вам придется добавлять много-много битов избыточности к соседним буквам, что делает более вероятность того, что код будет набран неправильно. Лучший способ сделать коды удобочитаемыми - это сделать их понятными для человека. Что-то, что вызывает ответ "это выглядит неправильно ". Как имя, если ты не ребенок Фрэнка Заппы. А в остальном основа кодов вроде буква-буква + цифры. И так далее.