Hakowanie kodów kreskowych w Tesco

dodał 23 lipca 2012 o 22:45 w kategorii HowTo, Info  z tagami:
Hakowanie kodów kreskowych w Tesco

Wpuść informatyka do sklepu, a zawsze coś nabroi. Jak się okazuje, zamiłowanie do inzynierii wstecznej może się przydać nawet w czasie zakupów. Brytyjski student fizyki twierdzi, że przypadkiem rozgryzł algorytm tworzenia kodów kreskowych dla przecenionych produktów w sklepach Tesco.

Matt Evans robił zakupy w brytyjskim Tesco, kiedy jego uwagę zwróciły batoniki energetyczne z bardzo niską ceną, których termin przydatności do spożycia upływał tego samego dnia. Zamiast zwyczajnych funta i 20 pensów, kosztowały one tylko 7 pensów za paczkę. Kiedy przyjrzał się ich kodowi kreskowemu, zwrócił uwagę na ciekawą zależność.

Matt zauważył, że kod kreskowy batonów z długą datą przydatności do spożycia to 5000221503354, podczas kiedy kod batonów przecenionych to 971500022150335460000708. Analiza kolejnych produktów wykazała, że kody rabatowe tworzone są według stałego algorytmu.

Po pierwsze, każdy z nich zaczyna się od cyfr 971. Potem pojawia się zwykły kod produktu. Kolejna cyfra (w tym wypadku 6) to na razie tajemnica. Po niej następuje 5 cyfr, które są ceną produktu po przecenie w pensach. Na końcu pojawia się jeszcze 0 oraz cyfra kontrolna. Cyfra kontrolna obliczana jest wg algorytmu: dodaj cyfry na parzystych pozycjach, dodaj cyfry na nieparzystych pozycjach i pomnóż sumę przez trzy, dodaj do siebie obie otrzymane sumy, policz resztę z dzielenia wyniku przez 10 i odejmij ją od 10.

Jedna cyfra w kodzie pozostaje tajemnicą – ale jako że jest tylko jedna, łatwo można ją potraktować jako zmienną i przetestować dla przedziału 0-9. Czy metoda działa? Według Matta sprawdza się dla przecenionych produktów, które znalazł w sklepie. Aby pozostać po dobrej stronie mocy, można próbować podawać kody kreskowe z klawiaturki czytnika kodów wyświetlającego ceny, w który wyposażony jest każdy sklep. Czy patent działa również w Polsce? Kiedyś okazało się, że można kupić w Tesco piwo za 6 groszy, więc wszystko jest możliwe. Nasi czytelnicy mieszkający blisko Tesco pewnie wkrótce sami sprawdzą. Pamiętajcie, aby nie skończyć jak pewien klient Tesco ze Stalowej Woli, informacje należy wykorzystywać tylko w celu edukacyjnym!

Aktualizacja 2012-07-24

W polskim Tesco schemat tworzenia kodów kreskowych towarów przecenionych jest identyczny, co widać na poniższych etykietach. Niestety kody rabatowe nie są prawidłowo odczytywane przez czytniki dostępne dla klientów znajdujące się w sklepie (brak odczytu), co utrudnia nieinwazyjne przeprowadzenie dalszych testów.


Eytkiety rabatowe Tesco