23.148.855.308.184.500 è un numero magico o pura possibilità?


556

Notizie come questa indicano che il numero sopra riportato potrebbe essere emerso come errore di programmazione.

Un uomo negli Stati Uniti è uscito al suo distributore di benzina locale per acquistare un pacchetto di sigarette - solo per trovare la sua carta addebitata $ 23.148.855.308.184.500.

Si tratta di $ 23 quadrilioni (£ 14 quadrilioni) - molte volte il debito nazionale degli Stati Uniti. *

In esadecimale è $ 523DC2E199EBB4 che non sembra terribilmente interessante a prima vista.

Qualcuno ha qualche idea su quale errore di programmazione avrebbe causato questo?


31
benzinaio annoiato?
txwikinger,

217
Bene Obama ha detto che aveva un nuovo piano di stimolo in corso per alleviare il deficit ...
Christopher Klein,

25
Esattamente che tipo di carta di credito ha questo ragazzo che quella transazione è passata e ha provocato solo $ 15 in commissioni di scoperto ... Probabilmente anche la stazione di benzina non è contenta della commissione di elaborazione del 2% su quella carta di credito.
Nick Bastin,

42
Uovo di Pasqua di un programmatore che presto verrà lanciato;)
Matthew Whited,

28
Forse questa è una sorta di nuova campagna antifumo. ("Vedi quanto ti costa davvero fumare!" :-)
Schiaffeggia il

Risposte:


1447

Aggiungi i centesimi al numero e otterrai 2314885530818450000, che in esadecimale è 2020 2020 2020 1250.

Vedi lo schema? I primi sei byte sono stati sovrascritti da spazi (hex 20, dic 32).


56
Ancora una volta dimostrando che gli spazi bianchi non sono innocui.
Eric,

547
se questo è vero, hai appena vinto un premio per il "miglior debug dell'anno" :)
Stefano Borini,

82
Il VISA potrebbe aver bisogno di lui più della NASA.
Brandon,

61
Sembra che abbia comprato un cartone, non un pacco - hex 1250 = dec 4688, o £ 46,88
John Rasch,

157
secchioni: scopri la marca e la quantità di sigarette che un uomo fuma eseguendo il debug del suo rapporto sbagliato con la carta di credito;)
Stefano Borini,

239

Aspetta un secondo; c'è qualcosa di sospetto.

Mentre la spiegazione spaziale sembra certamente buona, può essere (almeno in parte) speciosa.

VISA ha dichiarato che c'erano "meno di 13.000" clienti colpiti dallo snafu con le carte prepagate Visa Buxx. Ho trovato notizie su diversi finora. Josh Muszynski nel New Hampshire, Jason Bryan nel Tennessee, Ron Seale in Texas, il figlio adolescente di Karen Taylor a Bethel e una ragazza, Elizabeth Lewis a Owatonna.

Il fatto è che tutti hanno lo stesso costo esatto : $ 23.148.855.308.184.500,00. Se il problema era il riempimento dello spazio, come è possibile che tutti abbiano avuto lo stesso addebito di $ 0x1250 ($ 46,88)? Due di loro avevano acquistato sigarette nelle stazioni di servizio, altri due avevano pagato in ristoranti, Lewis aveva comprato uova e latte, l'ultimo in un negozio di droga. Tutti questi articoli vari hanno lo stesso costo? 46,88 dollari per un conto del ristorante sembrano a posto, ma per un pacchetto di sigarette? per latte e uova‽

L'errore di spaziatura ha senso, tranne che non tiene conto della costante 0x1250. Perché tutti loro sono finiti con o 0x2020 2020 2020 1250invece di 0x2020 2020 2020 2020numeri diversi nell'ultima WORD?

Hmmm, se solo 13.000 clienti fossero interessati, potrebbe essere che in qualche modo quell'esatto addebito specifico abbia innescato l'errore. In tal caso, è più di un semplice errore di campo. Se fosse solo il campo di testo ad essere interpretato come un numero intero a 64 bit, allora perché non lo hanno causato altri importi, interessando così tutti, non solo <13.000. Tuttavia, come è possibile che 13.000 persone abbiano potuto addebitare esattamente lo stesso importo nella stessa settimana?

Dicono che sia un "errore di programmazione temporaneo", e potrebbe anche essere, ma potrebbe essere una cosa di hacking? In tal caso, probabilmente sarebbe un numero magico. In effetti, potrebbe essere una combinazione di entrambi: alcuni hacker che inseriscono una carica automatica 0x1250, combinati con l'errore di spaziatura, causando il rilevamento di uno o entrambi gli errori.

Il registro ritiene che la risposta sia effettivamente l'errore del campo imbottito, ma non si espande sul perché siano tutti uguali, anche se uno dei commenti menziona il numero eventualmente arrotondato ai $ 100 più vicini (improbabile poiché le banche e il software bancario vanno esplicitamente a lunghezze per garantire precisione).

(C'è anche una segnalazione di un simile errore precedente.)


Il conto di Jason Bryant:

Il conto di Jason Bryant

Conto di Elizabeth Lewis:

Il conto di Elizabeth Lewis

Fattura di Ron Seale:

Il conto di Ron Seale

Il conto di Josh Muszynski:

Il conto di Josh Muszynski


8
Forse il numero hex 1250 = dec 4688 è il minimo per causare una sorta di metodi extra di controllo delle frodi. Se è esattamente uguale a questo viene introdotto un bug nel codice?
PeteT,

6
+1 puoi immaginare cosa succederebbe se i 13.000 clienti effettuassero contemporaneamente uno storno di addebito? : P
pageman,

11
@ petebob796 in realtà ogni byte è trattato separatamente, quindi 1250 (12 50) è 18 e 80. 18 è un carattere di controllo e 80 è la P maiuscola (almeno in ASCII). Hmmm ... Ctrl + P?
WildJoe,

1
$ 12,50 è un numero relativamente piccolo e rotondo. Non sorprende affatto che su milioni di transazioni 13.000 abbiano avuto quell'importo esatto. Ma deve essere combinato con qualche altro difetto logico che ha innescato la sovrascrittura.
Tom A

4
12.50 è piccolo e rotondo, ma è un numero completamente diverso da 0x12.50. E se c'è qualcuno là fuori che paga $ 12,50 per un pacchetto di sigarette, sono felice di aver smesso.

62

Ciò che accade quando si effettua un acquisto con carta è che il software va immediatamente online per assicurarsi di disporre di fondi sufficienti per l'acquisto, ma pone solo una sospensione sui fondi per la transazione. Alla fine della giornata lavorativa, il software raccoglie quindi tutte le transazioni effettuate nelle ultime 24 ore e le invia alla banca acquirente per l'elaborazione.

La presentazione alla banca è nota come liquidazione e viene effettuata inviando un file di testo semplice in un formato molto rigido. (Tutto questo è stato sviluppato decenni fa e il numero di sistemi che ora lo utilizzano rende difficile l'ammodernamento)

Ogni transazione appare nel file come una riga di testo e parte di esso è il valore della transazione. Questo campo deve contenere 11 caratteri numerici (zero riempito sul lato sinistro) e manterrà sempre il valore nel minimo comune denominatore (in questo caso centesimi). 11 caratteri numerici si rivolgono bene per i valori in qualsiasi valuta.

Sembra che il processore di pagamento in questo caso abbia apportato alcune modifiche al loro software di invio e abbia erroneamente sostituito il riempimento zero con spazio. Mi sfugge abbastanza da come è stato ottenuto da a) fornitore di servizi, b) acquisizione di una banca ec) Visa senza essere ritirato. Il valore netto di quel file di insediamento (13.000 transazioni di alto valore) sarebbe stato astronomico, e forse anche questo avrebbe contribuito in qualche modo.


15
"11 caratteri numerici si rivolgono bene per i valori in qualsiasi valuta." - che dire dei dollari dello Zimbabwe?
quant_dev,

6
Chi paga con VISA in Zimbabwe? (^_^)
DegDwight l'

Questo è un bel commento. Ma se si trattava di un problema tecnico del software, allora non c'è prova che a) fornitore di servizi, b) acquisizione di banche ec) Visa abbia visto tutto. Potrebbe essere sorto in qualsiasi momento.
Isaac Lubow,

20

Se si rimuove lo zero finale, questo viene convalidato come numero di carta VISA. La mia ipotesi è che abbiano fatto scorrere la carta, quindi abbiano inserito manualmente il numero, pensando che il colpo non fosse riuscito.


9
lol - Abbiamo appena pubblicato il suo numero di carta Visa? .. Come si chiamava di nuovo?
ian_scho,

4
ps QUESTA è la risposta più probabile, gli oltre 200 voti per la prima risposta sono dei geek :) Ci sono circa 50 miliardi di transazioni Visa all'anno.
ian_scho,

14
No, era un bug, non un errore di utilizzo. Circa 13000 clienti sono stati interessati da questo errore.
Guffa,

8
Qual è la probabilità che i primi sei byte siano spazi per puro caso?
Robert Harvey,

1
Improbabile ... ci sono state più transazioni con clienti diversi, tutti con lo stesso importo esatto!
Roddy,

10

Il mistero ultimo è ancora da dove proviene il 12 50. Sono i codici ASCII per Ctrl + R, P. Quali sono i tasti segreti che devi digitare per inserire il codice di validazione per QuickBooks.

Link: dove inserire il codice di convalida

Abbastanza una coincidenza. Mi chiedo cosa succede quando digiti queste chiavi nel posto sbagliato ...


7

Se si sposta la rappresentazione a 64 bit a sinistra a 8 bit a sinistra (moltiplicando per 256) Si otterrà un numero di carta di credito ben formato e 3 posizioni vuote per questo 3 numeri extra sicuri (tutti zero per qualche motivo). C'è solo 1 possibilità su 10 che un numero casuale dia un numero CC ben formato.

5926 1069 5889 5232 000


6

Se si utilizza la decodifica binaria equivelante (1110101110110100) del numero 23148855308184500, si ottiene K 鑛, che è il carattere mandarino per il mining e il minerale. Kmine potrebbe significare "miniera della conoscenza" o qualcosa come kmine Holdings Ltd. Forse esiste una correlazione tra K (miniera o minerale) e Bank of America o Visa?


56
Penso che tutto sia molto più profondo di questo. Se moltiplichi questo numero per l'altezza della Piramide di Khufu e quindi moltiplichi ogni terzo numero entro il 2012 otterrai Alpha 1/636 di Alpha Centauri.
serg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.