556 Stimmen

Ist 23.148.855.308.184.500 eine magische Zahl oder reiner Zufall?

Nachrichtenberichte wie diese deuten darauf hin, dass es sich bei der oben genannten Zahl möglicherweise um einen Programmierfehler handelt.

Ein Mann in den Vereinigten Staaten sprang heraus seine örtliche Tankstelle, um eine eine Schachtel Zigaretten zu kaufen - nur um festzustellen, dass seine Karte mit 23.148.855.308.184.500 Dollar belastet wurde.

Das sind 23 Billionen Dollar (14 £ Quadrillionen) - ein Vielfaches der US Staatsverschuldung.*

In hexadezimaler Darstellung ist es $523DC2E199EBB4, was auf den ersten Blick nicht sonderlich interessant erscheint.

Hat jemand eine Idee, welcher Programmierfehler dies verursacht haben könnte?

1447voto

Guffa Punkte 663241

Addiert man die Cents zu der Zahl, erhält man 2314885530818450000, was in Hexadezimalzahlen 2020 2020 2020 1250 bedeutet.

Erkennen Sie das Muster? Die ersten sechs Bytes sind mit Leerzeichen überschrieben (hex 20, dez 32).

239voto

Synetech Punkte 9247

Moment mal, da ist etwas faul an der Sache.

Auch wenn die Erklärung, die den Raum ausfüllt, gut klingt, ist sie möglicherweise (zumindest teilweise) fadenscheinig.

Nach Angaben von VISA waren "weniger als 13.000" Kunden von der Panne mit den Visa Buxx Prepaid-Karten betroffen. Ich habe bisher Nachrichten über mehrere gefunden. Josh Muszynski in New Hampshire, Jason Bryan in Tennessee, Ron Seale in Texas, Karen Taylors jugendlicher Sohn in Bethel und ein jugendliches Mädchen, Elizabeth Lewis in Owatonna.

Die Sache ist die, dass alle von ihnen die genau dieselbe Gebühr : $23,148,855,308,184,500.00. Wenn das Problem das Auffüllen der Leertaste war, wie kommt es dann, dass alle von ihnen genau dieselbe Gebühr von $0x1250 ($46,88) hatten? Zwei von ihnen hatten an Tankstellen Zigaretten gekauft, zwei weitere in Restaurants, Lewis kaufte Eier und Milch, der letzte in einer Drogerie. Haben all diese verschiedenen Artikel zufällig das Gleiche gekostet? 46,88 $ für eine Restaurantrechnung scheinen in Ordnung zu sein, aber für eine Schachtel Zigaretten? für Milch und Eier

Der Fehler beim Einfügen von Leerzeichen macht Sinn, außer dass er die Konstante 0x1250 nicht berücksichtigt. Wie kommt es, dass alle von ihnen mit 0x2020 2020 2020 1250 anstelle von 0x2020 2020 2020 2020 oder unterschiedliche Zahlen im letzten WORD?

Hmmm, wenn nur 13.000 Kunden betroffen waren, kann es sein, dass genau diese eine bestimmte Gebühr den Fehler ausgelöst hat. In diesem Fall handelt es sich um mehr als nur einen Feldfehler. Wenn es nur das Textfeld war, das als 64-Bit-Ganzzahl interpretiert wurde, warum haben dann nicht andere Beträge den Fehler verursacht, so dass alle betroffen waren, nicht nur <13.000. Doch wie kommt es, dass 13,000 die Leute zufällig genau denselben Betrag in derselben Woche berechnet haben könnten?

Es heißt, es handele sich um einen "vorübergehenden Programmierfehler", und das kann durchaus sein, aber könnte es sich auch um einen Hack handeln? In diesem Fall wäre es wahrscheinlich eine magische Zahl. In der Tat könnte es eine Kombination aus beidem sein: ein Hacker, der eine automatische 0x1250-Ladung einfügt, die mit dem Leerzeichen-Fehler kombiniert wird, wodurch einer oder beide Fehler erkannt werden.

El Register geht davon aus, dass es sich tatsächlich um einen Fehler beim Auffüllen von Feldern handelt, geht aber nicht näher darauf ein, warum sie alle gleich sind, obwohl in einem der Kommentare erwähnt wird, dass die Zahl möglicherweise auf die nächsten 100 Dollar aufgerundet wurde (was unwahrscheinlich ist, da Banken und Bankensoftware sich ausdrücklich um Genauigkeit bemühen).

(Es gibt auch eine Bericht eines ähnlichen, früheren Fehlers).

Die Rechnung von Jason Bryant:

Jason Bryant’s bill

Die Rechnung von Elizabeth Lewis:

Elizabeth Lewis’s bill

Ron Seale's Rechnung:

Ron Seale’s bill

Die Rechnung von Josh Muszynski:

Josh Muszynski’s bill

62voto

PaulG Punkte 13461

Wenn Sie einen Kauf per Karte tätigen, geht die Software sofort online, um sicherzustellen, dass Sie über genügend Geldmittel für den Kauf verfügen, hält aber nur das Geld für die Transaktion zurück. Am Ende des Arbeitstages sammelt die Software dann alle in den letzten 24 Stunden getätigten Transaktionen und leitet sie zur Bearbeitung an die erwerbende Bank weiter.

Die Übermittlung an die Bank wird als Abrechnung bezeichnet und erfolgt durch Übermittlung einer einfachen Textdatei in einem sehr starren Format. (Dies alles wurde vor Jahrzehnten entwickelt, und die Zahl der Systeme, die es jetzt verwenden, macht eine Modernisierung schwierig).

Jede Transaktion erscheint in der Datei als eine Textzeile, und ein Teil davon ist der Transaktionswert. Dieses Feld sollte aus 11 numerischen Zeichen bestehen (auf der linken Seite mit Nullen aufgefüllt) und enthält immer den Wert im kleinsten gemeinsamen Nenner (in diesem Fall Cents). 11 numerische Zeichen eignen sich gut für Werte in jeder Währung.

Es sieht so aus, als hätte der Zahlungsabwickler in diesem Fall einige Änderungen an seiner Übermittlungssoftware vorgenommen und fälschlicherweise das Null-Padding durch ein Space-Padding ersetzt. Wie dies a) am Dienstleister, b) an der erwerbenden Bank und c) an Visa vorbeigekommen ist, ohne entdeckt zu werden, ist mir schleierhaft. Der Nettowert dieser Abrechnungsdatei (13.000 Transaktionen mit hohem Wert) wäre astronomisch gewesen, und vielleicht hat auch das irgendwo eine Rolle gespielt.

20voto

Wenn Sie die Null am Ende entfernen, wird diese Nummer als VISA-Kartennummer validiert. Ich vermute, dass sie die Karte durchzogen und dann die Nummer manuell eingegeben haben, weil sie dachten, der Durchzug sei fehlgeschlagen.

10voto

Hans Passant Punkte 894572

Das eigentliche Rätsel ist immer noch, woher 12 50 kommen. Es sind die ASCII-Codes für Strg+R, P. Das sind zufällig die geheimen Tastenanschläge, die Sie eingeben müssen, um den Validierungscode für QuickBooks einzugeben.

Link: Wo ist der Validierungscode einzugeben?

Was für ein Zufall. Ich frage mich, was passiert, wenn man diese Tasten an der falschen Stelle eingibt...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X