By Андрей - andreydust@gmail.com
July 19, 2026


Мы запустили новый сервис — проверку штрих-кода онлайн. Теперь любой код с упаковки можно проверить двумя способами: ввести цифры вручную или просто сфотографировать штрих-код камерой телефона — сервис сам распознает цифры с фото, определит формат, проверит контрольную цифру и покажет страну регистрации производителя. Распознавание происходит прямо в браузере: фотография никуда не отправляется.

Штрих-код — настолько привычная вещь, что мы перестали её замечать. Между тем за этими чёрно-белыми полосками стоят полвека инженерной истории, элегантная математика и несколько мифов, в которые до сих пор верит половина покупателей. Разберём всё по порядку.


Немного истории: от азбуки Морзе на песке до жвачки Wrigley's

История штрих-кода началась в 1948 году, когда аспирант Дрексельского университета Бернард Сильвер случайно услышал, как директор продуктовой сети просил декана придумать способ автоматически считывать информацию о товаре на кассе. Сильвер рассказал об этом своему другу Норману Вудленду — и тот взялся за задачу всерьёз.

По легенде, решение пришло к Вудленду на пляже в Майами. Размышляя об азбуке Морзе, он провёл пальцами по песку — и вместо точек и тире получились линии разной толщины. Так родилась идея кодировать данные шириной полос. В 1952 году Вудленд и Сильвер получили патент US 2,612,994 — правда, их первый штрих-код был не полосатым, а круглым, в виде мишени («bull's eye»): такой код можно читать с любого направления.

Технология опередила своё время: в 1950-х не существовало ни дешёвых лазеров, ни компьютеров, способных обрабатывать данные на кассе. Идея пролежала на полке почти двадцать лет.

Вернулись к ней в начале 1970-х, когда американская торговля буквально тонула в очередях. Индустрия объявила конкурс на единый стандарт товарного кода, и в 1973 году победил линейный дизайн инженера IBM Джорджа Лорера — так появился UPC (Universal Product Code). К слову, Вудленд к тому моменту работал в IBM и участвовал в проекте.

А дальше — момент, вошедший во все учебники: 26 июня 1974 года в супермаркете Marsh в городке Трой, штат Огайо, кассир впервые отсканировал товар со штрих-кодом. Это была упаковка жевательной резинки Wrigley's Juicy Fruit за 67 центов. Сегодня она хранится в Смитсоновском музее американской истории.

Европа подключилась в 1977 году со своим стандартом EAN (European Article Number) — совместимым с UPC, но с дополнительной цифрой, чтобы хватило места для кодов всех стран. Советский Союз вступил в ассоциацию EAN в 1990 году: тогда была создана организация ЮНИСКАН, которая и сегодня (уже как ГС1 РУС) выдаёт российским производителям префиксы 460–469. Сейчас обе системы объединены под крышей глобальной организации GS1, а штрих-код сканируется в мире более 10 миллиардов раз в день.


Что зашито в 13 цифрах EAN-13

Самый распространённый в России и Европе формат — EAN-13, тринадцать цифр под полосками. Структура у него строгая:

  1. Префикс GS1 (первые 3 цифры) — код национальной организации, в которой производитель зарегистрировался: 460–469 — Россия, 400–440 — Германия, 690–699 — Китай, 30–37 — Франция.
  2. Код предприятия (следующие 4–6 цифр) — номер конкретной компании в реестре GS1.
  3. Код товара (2–4 цифры) — порядковый номер продукта, который присваивает сам производитель.
  4. Контрольная цифра (последняя) — математическая «печать», защищающая код от опечаток и ошибок сканирования.

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

Как считается контрольная цифра

Алгоритм называется mod 10, или «модуль 10 с весами 1 и 3», и его легко проверить на бумаге. Возьмём код с нашей картинки — 4601234567893:

  1. Берём первые 12 цифр: 4 6 0 1 2 3 4 5 6 7 8 9.
  2. Цифры на нечётных позициях (1-й, 3-й, 5-й…) умножаем на 1, на чётных — на 3: 4·1 + 6·3 + 0·1 + 1·3 + 2·1 + 3·3 + 4·1 + 5·3 + 6·1 + 7·3 + 8·1 + 9·3 = 4 + 18 + 0 + 3 + 2 + 9 + 4 + 15 + 6 + 21 + 8 + 27 = 117.
  3. Округляем сумму вверх до ближайшего десятка: 120.
  4. Разность и есть контрольная цифра: 120 − 117 = 3.

Последняя цифра кода — тройка, значит код составлен корректно. Если при наборе перепутать любую одну цифру, сумма изменится и проверка не сойдётся — именно так кассовый сканер мгновенно понимает, что код считался с ошибкой, и просто не принимает его. Наш сервис проверки показывает весь этот расчёт по шагам для любого введённого кода.

Инженерная магия: где спрятана тринадцатая цифра

Внутри полосок есть красивый трюк. Физически EAN-13 кодирует полосами только 12 цифр — по семь модулей (полос и пробелов) на цифру, плюс краевые и центральный ограничители, всего 95 модулей. А тринадцатая, первая цифра, закодирована… чередованием типов кодировки шести левых цифр. Каждая левая цифра может быть записана в «наборе L» или «наборе G», и именно рисунок этого чередования (LLGLGG, LGGLLG и т. д.) сообщает сканеру первую цифру. Так инженеры EAN добавили целую цифру, не удлинив код ни на один миллиметр — и сохранив совместимость со сканерами UPC.

Ещё одна деталь: правые цифры кодируются «зеркальным» набором R с нечётным числом тёмных модулей, а левые — с чётным. Благодаря этому сканер всегда понимает, читает он код слева направо или вверх ногами, — и спокойно разворачивает результат. Поэтому на кассе никто не выравнивает банку этикеткой к лазеру.


Страна производителя: главный миф о штрих-кодах

В интернете популярны таблицы «определи страну производства по штрих-коду». Наш сервис страну по префиксу показывает, но с важной оговоркой, которую большинство таблиц опускает: префикс говорит о стране регистрации кода, а не о месте производства товара.

Глобальная компания может зарегистрировать код в штаб-квартире в Германии (префикс 400–440), а выпускать товар на заводах в Китае, Польше и Бразилии — и на всех упаковках будет «немецкий» штрих-код. Это не подделка и не обман: правила GS1 этого не требуют. Страну происхождения ищите в маркировке «Изготовлено в …» — а префикс кода лишь подсказывает, в каком национальном офисе GS1 состоит владелец бренда.


Проверяет ли контрольная цифра подлинность товара?

Второй миф — «пробей код через проверку, и узнаешь, оригинал или подделка». Увы, нет. Контрольная цифра подтверждает только математическую корректность кода: что цифры не перепутаны и код мог быть выдан системой GS1. Но подделки почти никогда не изобретают собственные штрих-коды — они копируют настоящий код оригинального товара, и любая проверка контрольной цифры честно скажет: «код корректен».

Для реальной борьбы с контрафактом в России работает система маркировки «Честный ЗНАК»: там каждая единица товара получает уникальный криптографический код DataMatrix, который проверяется по государственной базе через мобильное приложение. Линейный штрих-код EAN — это про логистику и кассу, а не про подлинность. Мы честно пишем об этом прямо на странице сервиса — в отличие от многих «проверялок подлинности» в интернете.


Как работает сканирование по фото — прямо в браузере

Теперь самое интересное — то, ради чего мы писали этот пост. Раньше, чтобы проверить код, нужно было вглядываться в мелкие цифры под полосками и набирать их вручную. Теперь достаточно нажать кнопку «📷 Сканировать фото» — и навести камеру телефона на упаковку или выбрать готовый снимок из галереи.

Под капотом работают две технологии:

  1. BarcodeDetector API — встроенный в современные браузеры (Chrome на Android и другие) аппаратно-ускоренный распознаватель штрих-кодов. Если он доступен, распознавание происходит практически мгновенно средствами самого браузера.
  2. ZXing («zebra crossing» — «зебра-переход») — легендарная библиотека компьютерного зрения с открытым исходным кодом, которая развивается с 2007 года и в своё время стояла практически за всеми сканерами QR- и штрих-кодов на мобильных телефонах. Если BarcodeDetector в браузере нет (например, в iOS Safari или Firefox), сервис незаметно подгружает ZXing и распознаёт код ею.

Как алгоритм «видит» код на фотографии? Упрощённо: изображение переводится в градации серого, затем алгоритм проходит по горизонтальным линиям снимка и ищет характерный паттерн чередования тёмных и светлых участков — те самые ограничители 101 по краям и 01010 в центре. Найдя их, он измеряет относительную ширину полос (абсолютная не важна — код можно печатать любого размера), декодирует семимодульные последовательности в цифры по таблицам L/G/R и в конце сверяет контрольную цифру. Не сошлась — результат отбрасывается и попытка повторяется на соседней строке изображения. Именно поэтому распознавание надёжно даже на слегка мятой упаковке.

И принципиальный момент — приватность: вся обработка происходит на вашем устройстве, внутри браузера. Фотография не загружается ни на наш сервер, ни куда-либо ещё. Мы физически не видим ваших снимков.

Несколько советов, если код не распознаётся с первого раза:

  • снимите ближе, чтобы код занимал большую часть кадра;
  • избегайте бликов от плёнки и глянцевой упаковки;
  • держите камеру параллельно этикетке, без сильного наклона;
  • на изогнутой поверхности (бутылка, банка) сканируйте вдоль полос.

Что ещё умеет сервис

Сервис автоматически определяет формат по количеству цифр и работает со всей линейкой стандартов GS1:

  • EAN-13 (13 цифр) — основной товарный код в Европе и России;
  • EAN-8 (8 цифр) — укороченный код для маленьких упаковок;
  • UPC-A (12 цифр) — американский стандарт, тот самый наследник кода с жвачки 1974 года;
  • GTIN-14 (14 цифр) — коды групповых и транспортных упаковок;
  • SSCC-18 (18 цифр) — логистические коды паллет и грузовых мест;
  • ISBN и ISSN — книжные и журнальные коды: сервис распознаёт их по префиксам 977, 978 и 979 и подсказывает профильный валидатор.

Для каждого кода показывается пошаговый расчёт контрольной цифры — тот самый mod 10, который мы разобрали выше, — страна регистрации по актуальной таблице префиксов GS1 и расшифровка структуры кода.


Вместо заключения

Штрих-код прошёл путь от линий на песке Майами до десяти миллиардов сканирований в день — и остался при этом образцом инженерной простоты: несколько полос, немного арифметики по модулю 10 и продуманная до мелочей система кодирования. А проверить любой код теперь можно за пару секунд — по цифрам или по фото, бесплатно и без отправки данных куда-либо.

Наведите камеру на ближайшую упаковку — теперь вы знаете, что именно видит сканер.

« Назад ко всем публикациям

Отзывы и комментарии

Войдите, чтобы оставить отзыв или комментарий

Я Войти через Яндекс

Пока нет комментариев. Будьте первым!