viernes, 4 de noviembre de 2022

Códigos de barras no dan ninguna seguridad al fraude.

 



Estaba enfocado en las farmacias pero se aplica a todo.

Los códigos de barras de los medicamentos (si son crónicos los arrancan en la farmacia y se los quedan) tienen códigos de barras ean-13 falsos algunos de ellos puenteados a un número que aparece arriba (más pequeño que 13 números que es lo que tendría un EAN) en su base de datos del programa que usan en las farmacias.

Los ean son como las matrículas de lo que se vende y son números que identifican la empresa el país etc (ean european article numeration) y se han de poder consultar estos datos libremente.

EAN-13 tiene 13 números:

El código del país está compuesto por dos o tres dígitos (A); el código de empresa por cuatro o cinco (B), y el código del producto completa los doce primeros dígitos (C). Finalmente, el dígito de control está en último lugar (D).

Los códigos de barras son fáciles de generar y hay servicios en internet que los venden...
Con el código del país y el número de comprobación al final parece que basta.
En la propia Wikipedia explican como calcular el número de control. No parece nada seguro este sistema...

// Cálculo del dígito de control EAN

string ean = "123456789012";
int sum = 0;
int sumOdd = 0;
var digit = 0;


for (int i = ean.Length; i >= 1; i--)

{

    digit = Convert.ToInt32(ean.Substring(i - 1, 1));

    if (i % 2 != 0)

    {

       sumOdd += digit;

    }

    else

    {

       sum += digit;

    }

}

digit = (sumOdd) + (sum * 3);

int checkSum = (10 - (digit % 10)) % 10;

Console.Write("Dígito de control: " + checkSum.ToString());

Así que por fuerza bruta puedes con un programa generar códigos de barras con facilidad y no ofrece ninguna garantía.


No hay comentarios:

Publicar un comentario