Наиболее вероятный способ вычисления валидации с использованием проверки MOD 7 по последнему номеру - PullRequest
0 голосов
/ 23 июня 2011

Я пытаюсь выполнить проверку номера для реализации проприетарного идентификатора. Я ожидал подробный документ спецификации для алгоритма, но это все, что они отправили:

The IDs are 9 digits.
The check digit is a MOD 7 check on the last number.

Я думаю, что должен предположить, что «MOD 7» означает применять модуль 7 к чему-то - я подозреваю, что «последнее число» означает больше, чем просто применение мода 7 к последней цифре, иначе каждый действительный идентификатор будет заканчиваться на 0 или 7.

Между тем, кто-то в отдельном разговоре сказал, что это на самом деле «проверка CRC MOD 7 на последнем номере» (добавив «CRC»), но я думаю , что это была неправильно составленная деталь и CRC вообще не используется, но что я знаю?

У меня возникают трудности с поиском информации о каком-то стандартном способе чтения этой спецификации и интерпретации этого для некоторого "стандартного алгоритма". Большая часть примеров, которые я нашел, состоит из множества различных алгоритмов, таких как взвешенные или невзвешенные и т. Д.

Кто-нибудь знает, как я, скорее всего, буду это истолковывать, или я должен просить дополнительную информацию? Если я должен попросить дополнительную информацию, какие вопросы мне следует задать?

Ответы [ 3 ]

2 голосов
/ 23 июня 2011

Как я сказал в своем комментарии, это ужасная документация, но вот единственный способ прочитать это, что имеет смысл для меня:

Вы выполняете проверку MOD 7 по всему номеру карты (все девять цифр), а затем проверяете, равен ли этот результат последней цифре в номере карты.

1 голос
/ 23 июня 2011

Небольшое отклонение от ответа Briguy37, пока что это отклонение действительно является правильным в моем случае, поскольку первоначальные тесты, похоже, прошли.

Вы выполняете проверку MOD 7 для первых восьми цифр 9-значного числа в виде одного 8-значного целого числа, а затем проверяете, равен ли этот результат последней цифре в номере карты.

0 голосов
/ 23 июня 2011

Вам следует запросить дополнительную информацию.Подумайте о последствиях, если вы этого не сделаете, и окажется, что интерпретация, которую вы получили из интернета, неверна.

...