Найти в Дзене
Андрей Ортега

Есть ли в штрихкоде «число зверя»?

Оглавление

В одной из предыдущих статей я подробно разбирал библейское пророчество о «метке зверя» и о ее назначении, изложенном в Откровении Иоанна Богослова. Статья вызвала на удивление бурный резонанс. Видимо, тема злободневная.

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

И всё же сегодня я затрону один конкретный вопрос — штрих-коды на товарах широкого потребления в розничных магазинах.

Вроде такого:

Источник: https://barcodium.ru/blog/shtrih-kody-stran-proizvoditelej
Источник: https://barcodium.ru/blog/shtrih-kody-stran-proizvoditelej

Введение: зачем нужны штрихкоды

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

Многим из нас знакома проблема очередей на кассе в магазине. Обычно кассиров можно пересчитать по пальцам одной руки, а покупателей в десятки раз больше. И все они ждут, терпят, пыхтят от духоты в своей уличной одежде. Хочется, чтобы это мучение в очередях закончилось побыстрее. А как можно быстрее обслужить покупателя, если необходимо учесть все его товары? Найти каждое наименование товара и соответствующую ему цену, посчитать итоговую стоимость…

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

Пик, пик, пик — готово, с вас 512 рублей. Следующий!

Обслуживание значительно ускоряется, и покупателям меньше ждать.

А руководство магазина может позволить себе меньше открытых касс 😃

Почему именно штрихкоды?

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

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

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

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

Источник: https://www.tradeinn.com/techinn/ru/godex-gs220-barcode-scanner/137816132/p
Источник: https://www.tradeinn.com/techinn/ru/godex-gs220-barcode-scanner/137816132/p

Однако не все рады такому нововведению. Существует прослойка религиозных людей, которые боятся штрихкодов, как огня. Об этом мы поговорим подробнее.

Где в штрихкоде может быть «число зверя»?

Если коротко — вот пара картинок с объяснением, как это представляют противники штрихкодов. Можете полистать.

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

Выглядит страшно убедительно, не так ли?

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

Вы со мной? Тогда поехали!

Первым делом проверим…

Как кодируются шестерки в штрихкоде?

Чтобы ответить на этот вопрос, я пойду в Интернет и воспользуюсь помощью генератора штрихкодов. Через Гугл найти такой генератор нетрудно.

На большинстве розничных товаров ставят штрихкод EAN-13. Именно его я и буду создавать. А в качестве цифрового кода я наберу одни шестерки, чтобы лучше было видно.

Вот что у меня получилось:

Мой пробный код. Источник: https://barcode.tec-it.com/ru/EAN13?data=6666666666666
Мой пробный код. Источник: https://barcode.tec-it.com/ru/EAN13?data=6666666666666

Действительно, можно увидеть кучу двойных тонких штрихов — точно таких же, как три длинных разделителя. Выходит, это правда?

Но погодите. Обратите внимание на левую половину штрихкода. В ней почему-то видно жирные штрихи. Что они там делают? Ведь у нас в коде нет ничего, кроме шестерок. Откуда взялись жирные линии?

Чтобы ответить на этот вопрос, мы обратимся к государственному стандарту (ГОСТу), определяющему устройство штрихкодов.

Идем в ГОСТ

Нужный нам документ называется ГОСТ ISO/IEC 15420-2010. Если у вас много свободного времени, вы можете ознакомиться с этим документом самостоятельно по этой ссылке. А я покажу лишь то, что важно для нашего с вами исследования, по возможности ссылаясь на стандарт.

1. Штрихкод можно условно поделить на тоненькие полоски — модули. Ширина каждого штриха или пробела в штрихкоде равна 1, 2, 3 или 4 модулям (см. пункт 4.1c в стандарте).

2. Каждая цифра кодируется ровно семью модулями, которые вместе образуют два штриха и два пробела (см. пункты 4.1c и 4.2.2.1).

3. Кодирование каждой цифры возможно одним из трех способов, условно называемых A, B и C. Эти способы наглядно показаны в приложении D (на стр. 23 в стандарте, или стр. 28 в файле).

Источник: https://gostrf.com/normadata/1/4293815/4293815806.pdf
Источник: https://gostrf.com/normadata/1/4293815/4293815806.pdf

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

4. Цифры в правой половине штрихкода кодируются наборами типа C. Цифры в левой половине штрихкода кодируются наборами типа A и B (см. пункт 4.2.3.1).

5. Длинные пары штрихов, в которых усматривают «число зверя», называются шаблонами-ограничителями (см. пункт 3.8). У них есть свой способ кодирования — тремя или пятью модулями (см. стр. 24 в документе, или стр. 29 в файле):

Источник: https://gostrf.com/normadata/1/4293815/4293815806.pdf
Источник: https://gostrf.com/normadata/1/4293815/4293815806.pdf

И вот на этом месте я остановлюсь подробнее. Надеюсь, не утомил 😎

Рассуждение

Давайте возьмем способы кодирования шестерок и сравним их с нашим штрихкодом.

Собственный монтаж
Собственный монтаж

В наборе 6A вы можете видеть тот самый жирный штрих (из 4 модулей), который мы встречали ранее в нашем пробном штрихкоде.

А наборы 6B и 6C содержат те самые двойные тонкие штрихи, которых так боятся сторонники заговора.

А теперь посмотрим, где у нас шаблоны-ограничители:

Собственный монтаж
Собственный монтаж

Обратите внимание: в отличие от шаблонов-ограничителей, шестерки (в наборах 6B и 6C) содержат не только двойной штрих, но также пробел шириной аж в четыре белых модуля — слева или справа от двойного штриха. По стандарту ни один разделитель не предусматривает такого большого пробела.

Технически, шестерки и ограничители кодируются по-разному.

Путаница между ними возникает из-за того, что человек глазами видит черные штрихи, но не берет в расчет пробелы! И не замечает, что на самом деле это разные элементы.

Но разве это что-то меняет?

Сторонник теории заговора может возразить: ну и что с того? Разве на штрихкоде нет белого пространства?

Действительно, посмотрите на крайние ограничители.

Собственный монтаж
Собственный монтаж

Белое пространство слева и справа от штрихкода — это не случайность, оно предусмотрено стандартом и называется «свободные зоны» (см. пункт 4.2.3.1 в стандарте).

Середина

А теперь посмотрите на центральный ограничитель. Возле него нет пробелов шириной в четыре модуля — ни слева, ни справа:

Собственный монтаж
Собственный монтаж

Более того, если вы вернетесь к рисунку D.1, который был выше, то увидите, что абсолютно все цифры из наборов A и B при кодировании заканчиваются штрихом, а не пробелом. А все цифры из набора C начинаются со штриха.

Наборы A и B используются слева от среднего ограничителя.
Набор C — справа от среднего ограничителя.

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

Следовательно, средний ограничитель не может соответствовать шестерке: ни 6B, ни 6C. Это просто двойная полоска.

Заключение

Шестерка на штрихкоде — это не просто двойная полоска. Это двойная полоска с большим пробелом. И если крайние ограничители еще похожи на шестерки, то средний в принципе не может соответствовать ни одной из них.

Боящиеся этих ограничителей, по сути, боятся не шестерок, а двойных полосок. Потому что невооруженный глаз распознаёт в них три одинаковых предмета.

Но с тем же успехом человек мог бы бояться любых других трех предметов. Например, три рубашки в шкафу. Мысленно заменяем их на шестерки — и получаем 666. Или три личности: Отец, Сын и Святой Дух. Заменяем их на шестерки — и получаем 666… Это можно продолжать бесконечно.

Давайте же будем благоразумны.

Источник: https://dreamkas.ru/blog/achtung/
Источник: https://dreamkas.ru/blog/achtung/