Открыть сервис

Алгоритм контрольной суммы EAN

Алгоритм контрольной суммы EAN — это метод вычисления одной проверочной цифры (контрольного разряда), предназначенный для выявления ошибок при вводе или считывании штриховых кодов, соответствующих международному стандарту European Article Number (EAN). Контрольная сумма является обязательным элементом кодов EAN-8, EAN-13, а также родственных стандартов (UPC, JAN, GTIN). Она вычисляется по модулю 10 на основе весовой схемы, чередующей коэффициенты 1 и 3.

История и стандартизация

Система штрихового кодирования EAN была разработана в 1976 году как европейский аналог американского стандарта Universal Product Code (UPC). В 1977 году была создана Международная ассоциация EAN (ныне GS1), которая закрепила единый алгоритм вычисления контрольной суммы для всех кодов, используемых в розничной торговле, логистике и управлении цепочками поставок. В 2005 году EAN был полностью интегрирован в глобальную систему GS1, и алгоритм контрольной суммы стал обязательным для всех глобальных идентификаторов товаров (GTIN).

Принцип вычисления

Контрольная цифра в кодах EAN рассчитывается по модулю 10 с использованием весовых коэффициентов. Для кодов чётной длины (например, EAN-13) веса для цифр, начиная с первой слева, чередуются по схеме 1-3-1-3... Для кодов нечётной длины (например, EAN-8) веса начинаются с коэффициента 3.

Алгоритм для EAN-13

Код EAN-13 состоит из 13 цифр, последняя из которых — контрольная. Вычисление выполняется в несколько шагов:

  1. Нумерация позиций. Цифры нумеруются слева направо от 1 до 12 (без учёта контрольной).
  2. Суммирование с весами. Каждая цифра на нечётной позиции (1, 3, 5...) умножается на 1, на чётной позиции (2, 4, 6...) — на 3. Все произведения складываются.
  3. Остаток от деления на 10. Вычисляется остаток от деления полученной суммы на 10.
  4. Вычисление контрольной цифры. Если остаток равен 0, контрольная цифра — 0. В противном случае контрольная цифра равна 10 минус остаток.

Пример для кода 460123456789 (первые 12 цифр):

Полный код: 4601234567893.

Алгоритм для EAN-8

EAN-8 состоит из 8 цифр, последняя — контрольная. Весовая схема для 7 цифр (с 1-й по 7-ю) начинается с коэффициента 3: 3-1-3-1-3-1-3. Дальнейшие шаги идентичны алгоритму для EAN-13.

Проверка корректности кода

Для проверки правильности введённого или считанного кода используется обратная процедура: вычисляется контрольная сумма для всех 13 (или 8) цифр, включая контрольную, с теми же весами. Если полученная сумма делится на 10 без остатка, код считается корректным. В противном случае фиксируется ошибка.

Пример проверки кода 4601234567893:

Математическая основа

Алгоритм основан на свойствах арифметики по модулю 10. Выбор весов 1 и 3 обусловлен тем, что они позволяют обнаруживать большинство распространённых ошибок:

Алгоритм не является криптостойким и не предназначен для защиты от намеренного искажения данных — его задача исключительно выявление случайных ошибок ввода или считывания.

Применение в системе GS1

Контрольная сумма EAN используется во всех глобальных идентификаторах GS1:

В системе GS1 контрольная цифра вычисляется автоматически при генерации кода и входит в состав штрихового изображения. Сканеры штрих-кодов при считывании проверяют контрольную сумму и при её несовпадении выдают сигнал ошибки.

Ограничения

Связанные алгоритмы

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →