¿Es 23.148.855.308.184.500 un número mágico, o pura probabilidad?

556

Informes de noticias como este indican que el número anterior puede haber surgido como un error de programación.

Un hombre en los Estados Unidos salió a su gasolinera local para comprar un paquete de cigarrillos, solo para encontrar que su tarjeta tenía un cargo de $ 23,148,855,308,184,500.

Eso es $ 23 billones (£ 14 billones), muchas veces la deuda nacional de los Estados Unidos. *

En hexadecimal es $ 523DC2E199EBB4 que no parece terriblemente interesante a primera vista.

¿Alguien tiene alguna idea sobre qué error de programación habría causado esto?

Roddy
fuente
31
asistente de la gasolinera aburrida?
txwikinger el
217
Bien Obama sí dijo que él tenía un nuevo plan de estímulo en las obras para aliviar el déficit ...
Christopher Klein
25
Exactamente qué tipo de tarjeta de crédito tiene este tipo que la transacción se realizó y provocó solo $ 15 en cargos por sobregiro ... La estación de servicio también probablemente no está contenta con la tarifa de procesamiento de tarjeta de crédito del 2% en eso.
Nick Bastin
42
Huevo de Pascua de un programador que pronto será despedido;)
Matthew Whited
28
Quizás esta sea una especie de nueva campaña contra el tabaquismo. ("¡Vea cuánto fumar realmente le cuesta!" :-)
Slapout

Respuestas:

1447

Agregue los centavos al número y obtendrá 2314885530818450000, que en hexadecimal es 2020 2020 2020 1250.

¿Ves el patrón? Los primeros seis bytes han sido sobrescritos por espacios (hex 20, dic 32).

Guffa
fuente
56
Una vez más demostrando que el espacio en blanco no es inocuo.
Eric
547
si esto es cierto, acabas de ganar un premio a la "mejor depuración del año" :)
Stefano Borini el
82
VISA podría necesitarlo más que la NASA.
Brandon el
61
Parece que compró un cartón, no un paquete - hex 1250 = dic 4688, o £ 46.88
John Rasch el
157
nerds: descubra la marca y la cantidad de cigarrillos que fuma un hombre al depurar su informe de tarjeta de crédito incorrecto;)
Stefano Borini el
239

Espera un segundo; Hay algo sospechoso.

Si bien la explicación rellena de espacio ciertamente parece buena, puede ser (al menos en parte) engañosa.

VISA dijo que había "menos de 13,000" clientes afectados por el problema con las tarjetas prepagas Visa Buxx. He encontrado noticias sobre varios hasta ahora. Josh Muszynski en New Hampshire, Jason Bryan en Tennessee, Ron Seale en Texas, el hijo adolescente de Karen Taylor en Bethel y una adolescente, Elizabeth Lewis en Owatonna.

La cuestión es que todos tienen exactamente el mismo cargo : $ 23,148,855,308,184,500.00. Si el problema fue el relleno de espacio, entonces, ¿cómo es que todos ellos tenían exactamente el mismo cargo de $ 0x1250 ($ 46.88)? Dos de ellos habían comprado cigarrillos en gasolineras, otros dos habían pagado en restaurantes, Lewis compró huevos y leche, el último en una farmacia. ¿Todos estos artículos variados cuestan lo mismo? $ 46.88 por la factura de un restaurante parece estar bien, ¿pero por un paquete de cigarrillos? para leche y huevos‽

El error de relleno de espacio tiene sentido, excepto que no tiene en cuenta la constante 0x1250. ¿Por qué terminaron todos ellos en 0x2020 2020 2020 1250lugar de 0x2020 2020 2020 2020números diferentes en la última PALABRA?

Hmmm, si solo 13,000 clientes se vieron afectados, puede ser que de alguna manera ese cargo exacto y específico provocó el error. En ese caso, es más que un simple error de campo. Si solo se interpretaba el campo de texto como un entero de 64 bits, entonces ¿por qué otras cantidades no lo causaron, afectando así a todos, no solo a <13,000? Aún así, ¿cómo es que 13,000 personas podrían haber cobrado exactamente la misma cantidad en la misma semana?

Dicen que es un "error de programación temporal", y bien puede serlo, pero ¿podría ser una piratería? En ese caso, probablemente sería un número mágico. De hecho, puede ser una combinación de ambos: algún pirata informático que pone una carga automática 0x1250, que se combinó con el error de relleno de espacio, causando la detección de uno o ambos errores.

The Register cree que la respuesta es de hecho el error de campo acolchado, pero no explica por qué son todos iguales, aunque uno de los comentarios menciona que el número posiblemente se redondea a los $ 100 más cercanos (poco probable ya que los bancos y el software bancario explícitamente van a longitudes para garantizar la precisión).

(También hay un informe de un error similar anterior).


Proyecto de ley de Jason Bryant:

La cuenta de Jason Bryant

La factura de Elizabeth Lewis:

La factura de Elizabeth Lewis

La factura de Ron Seale:

Factura de Ron Seale

La factura de Josh Muszynski:

La factura de Josh Muszynski

Synetech
fuente
8
Posiblemente el número hexadecimal 1250 = dec 4688 es el mínimo para causar algún tipo de métodos adicionales de verificación de fraude. Si es exactamente igual a esto, ¿se introduce un error en el código?
PeteT
66
+1 ¿te imaginas lo que sucedería si los 13,000 clientes hicieran un contracargo al mismo tiempo? : P
pageman
11
@ petebob796 en realidad cada byte se trata por separado, por lo que 1250 (12 50) es 18 y 80. 18 es un carácter de control y 80 es P mayúscula (al menos en ASCII). Hmmm ... Ctrl + P?
WildJoe
1
$ 12.50 es un número relativamente pequeño y redondo. No es para nada sorprendente que de millones de transacciones 13,000 tuvieran esa cantidad exacta. Pero debe combinarse con alguna otra falla lógica que desencadenó la sobrescritura.
Tom A
44
12.50 es pequeño y redondo, pero es un número completamente diferente de 0x12.50. Y si hay alguien que paga $ 12.50 por un paquete de cigarrillos, me alegra haberlo dejado.
62

Lo que sucede cuando realiza una compra con tarjeta es que el software se conecta en línea de inmediato para garantizar que tenga fondos suficientes para la compra, pero solo retiene los fondos para la transacción. Al final de la jornada laboral, el software recopila todas las transacciones realizadas en las últimas 24 horas y las envía al banco adquirente para su procesamiento.

El envío al banco se conoce como liquidación, y se realiza mediante el envío de un archivo de texto sin formato en un formato muy rígido. (Todo esto se desarrolló hace décadas y la cantidad de sistemas que ahora lo utilizan dificulta la modernización)

Cada transacción aparece en el archivo como una línea de texto, y parte de eso es el valor de la transacción. Este campo debe tener 11 caracteres numéricos (cero rellenado en el lado izquierdo) y siempre tendrá el valor en el mínimo común denominador (en este caso, centavos). 11 caracteres numéricos abastecen bien los valores en cualquier moneda.

Parece que el procesador de pagos en este caso había realizado algunos cambios en su software de envío y reemplazó erróneamente el relleno cero con espacio. Apenas se me escapa esto a) proveedor de servicios, b) adquisición de banco yc) Visa sin ser recogido. El valor neto de ese archivo de liquidación (13,000 transacciones de alto valor) habría sido astronómico, y tal vez eso también fue un factor contribuyente en alguna parte.

PaulG
fuente
15
"11 caracteres numéricos satisfacen bien los valores en cualquier moneda". - ¿Qué pasa con los dólares zimbabuenses?
quant_dev el
66
¿Quién paga con VISA en Zimbabwe? (^_^)
ЯegDwight
Ese es un buen comentario. Pero si se trataba de una falla de software, entonces no hay pruebas de que a) el proveedor de servicios, b) el banco adquirente yc) Visa lo haya visto. Pudo haber surgido en cualquier momento.
Isaac Lubow
20

Si elimina el cero final, esto se valida como un número de tarjeta VISA. Supongo que deslizaron la tarjeta y luego ingresaron manualmente el número, pensando que el deslizamiento había fallado.


fuente
99
lol - ¿Acabamos de publicar su número de tarjeta Visa? .. ¿Cómo se llamaba de nuevo?
ian_scho
44
ps ESTA es la respuesta más probable, los más de 200 votos a favor de la primera respuesta son por geeks :) Hay alrededor de más de 50 mil millones de transacciones de visas al año.
ian_scho
14
No, fue un error, no un error de uso. Unos 13000 clientes se vieron afectados por este error.
Guffa el
8
¿Cuál es la probabilidad de que los primeros seis bytes sean espacios por pura casualidad?
Robert Harvey
1
Improbable ... hubo múltiples transacciones con diferentes clientes, ¡todas involucraban exactamente la misma cantidad!
Roddy
10

El misterio final sigue siendo de dónde viene 12 50. Son los códigos ASCII para Ctrl + R, P. Que resultan ser las teclas secretas que debe escribir para ingresar el código de validación para QuickBooks.

Enlace: dónde ingresar el código de validación

Toda una coincidencia. Me pregunto qué sucede cuando escribes estas teclas en el lugar equivocado ...

Hans Passant
fuente
7

Si desplaza a la izquierda la representación de 64 bits 8 bits a la izquierda (multiplique por 256) Obtendrá un número de tarjeta de crédito bien formado y 3 posiciones vacías para esto 3 números adicionales seguros (todos ceros por alguna razón). Solo hay 1 de cada 10 posibilidades de que un número aleatorio dé un número CC bien formado.

5926 1069 5889 5232 000


fuente
6

Si usa la decodificación del equivalente binario (1110101110110100) del número 23148855308184500, obtendrá K 鑛, que es el carácter mandarín para la minería y el mineral. Kmine podría significar "conocimiento mío", o algo así como kmine Holdings Ltd. ¿Quizás haya una correlación entre K (mina u mineral) y Bank of America o Visa?


fuente
56
Creo que todo es mucho más profundo que esto. Si multiplica este número por la altura de la Pirámide de Khufu y luego multiplica cada tercer número por 2012, obtendrá exactamente 1/666 de longitud al Alpha Centauri.
serg