web-dev-qa-db-fra.com

Est-ce que 23.148.855.308.148.500 est un nombre magique, ou un pur hasard?

Des reportages tels que celui-ci indiquent que le numéro ci-dessus est peut-être apparu comme un bug de programmation.

Aux États-Unis, un homme s'est rendu à la station-service de son quartier pour acheter un paquet de cigarettes. Il a découvert que sa carte était débitée à 23 148 855 308 184 500 dollars.

Cela représente 23 quadrillions de dollars (14 quadrillions de livres sterling), soit plusieurs fois la dette nationale des États-Unis. *

En hex c'est $ 523DC2E199EBB4 qui ne semble pas terriblement intéressant à première vue.

Quelqu'un a une idée de quelle erreur de programmation aurait pu causer cela?

556
Roddy

Ajouter les cents au nombre et vous obtenez 2314885530818450000, qui en hexadécimal est 2020 2020 2020 1250.

Voyez-vous le motif? Les six premiers octets ont été écrasés par des espaces (hex 20, 32 déc).

1448
Guffa

Attends une seconde; il y a quelque chose de louche.

Bien que l’explication d’espace vide semble certes bonne, elle peut être (au moins en partie) spécieuse.

VISA a déclaré qu'il y avait "moins de 13 000" clients affectés par le snafu avec les cartes prépayées Visa Buxx. J'ai trouvé des nouvelles sur plusieurs jusqu'à présent. Josh Muszynski au New Hampshire, Jason Bryan au Tennessee, Ron Seale au Texas, le fils adolescent de Karen Taylor à Bethel et une adolescente Elizabeth Lewis à Owatonna.

Le fait est que tous ont exactement exactement la même charge : 23 148 855 308,184 500,00 $. Si le problème était le remplissage d'espace, alors comment se fait-il qu'ils aient tous exactement les mêmes frais de $ 0x1250 ($ 46.88)? Deux d'entre eux avaient acheté des cigarettes aux stations-service, deux autres au restaurant, Lewis avait acheté des œufs et du lait, le dernier dans une pharmacie. Est-ce que tous ces articles variés coûtent la même chose? 46,88 $ pour une facture de restaurant semble bien, mais pour un paquet de cigarettes? pour le lait et les œufs‽

L'erreur de remplissage d'espace a du sens, sauf qu'elle ne prend pas en compte la constante 0x1250. Pourquoi est-ce qu'ils ont tous fini avec 0x2020 2020 2020 1250 au lieu de 0x2020 2020 2020 2020 ou des numéros différents dans le dernier mot?

Hmmm, si seulement 13 000 clients étaient concernés, il est possible que cette accusation exacte et spécifique ait déclenché l'erreur. Dans ce cas, il s'agit plus que d'une simple erreur de champ. S'il s'agit simplement d'un champ de texte interprété comme un entier de 64 bits, alors pourquoi d'autres montants ne le sont-ils pas causé, affectant ainsi tout le monde, pas seulement <13 000. Pourtant, comment se fait-il que 13 000 des personnes auraient pu facturer exactement le même montant la même semaine?

Ils disent que c’est une "erreur de programmation temporaire", et c’est peut-être bien, mais est-ce que ce serait un truc de piratage? Dans ce cas, ce serait probablement un nombre magique. En fait, cela peut être une combinaison des deux: un pirate informatique chargeant une charge automatique de 0x1250, qui a été combiné à une erreur de remplissage d'espacement, entraînant la détection d'une ou des deux erreurs.

Le Register pense que la réponse est bien l’erreur de champ de remplissage, mais ne précise pas pourquoi ils sont tous identiques, bien que l’un des commentaires mentionne que le nombre pourrait être arrondi à la centaine de dollars la plus proche (peu probable). les banques et les logiciels bancaires s’efforçant explicitement d’assurer la précision).

(Il existe également un report d'une erreur antérieure similaire.)


Projet de loi de Jason Bryant:

Jason Bryant’s bill

Facture d’Elizabeth Lewis:

Elizabeth Lewis’s bill

La facture de Ron Seale:

Ron Seale’s bill

Projet de loi de Josh Muszynski:

Josh Muszynski’s bill

239
Synetech

Lorsque vous effectuez un achat par carte, le logiciel passe immédiatement en ligne pour vous assurer que vous disposez des fonds suffisants pour l’achat, mais ne les conserve que pour la transaction. À la fin de la journée de travail, le logiciel collecte ensuite toutes les transactions effectuées au cours des dernières 24 heures et les soumet à la banque acquéreuse pour traitement.

La soumission à la banque est connue sous le nom de règlement, et elle se fait en envoyant un fichier texte brut dans un format très rigide. (Tout cela a été développé il y a plusieurs décennies et le nombre de systèmes qui l'utilisent rend difficile la modernisation)

Chaque transaction apparaît dans le fichier sous la forme d'une ligne de texte, dont une partie correspond à la valeur de la transaction. Ce champ doit comporter 11 caractères numériques (zéro complété à gauche) et contiendra toujours la valeur au plus petit dénominateur commun (dans ce cas, les centimes). 11 caractères numériques s'adressent bien aux valeurs dans n'importe quelle devise.

On dirait que le processeur de paiement dans ce cas a apporté des modifications à leur logiciel de soumission et a remplacé par erreur le remplissage zéro par un remplissage d'espace. Comment cela a-t-il été obtenu par un) fournisseur de services, b) une banque acquéreuse et c) Visa sans être pris en charge, m'échappe La valeur nette de ce fichier de règlement (13 000 transactions de grande valeur) aurait été astronomique, ce qui a peut-être aussi joué un rôle.

62
PaulG

Si vous supprimez le zéro final, cela correspond à un numéro de carte VISA. Je suppose qu'ils ont glissé la carte puis entré manuellement le numéro, pensant que le balayage avait échoué.

20
Daniel

Le mystère ultime est toujours à l'origine de 12 50. Ce sont les codes ASCII pour Ctrl + R, P.). Il s’agit des touches secrètes que vous devez taper pour entrer le code de validation pour QuickBooks.

Lien: Où entrer le code de validation

Une coïncidence. Je me demande ce qui se passe lorsque vous tapez ces clés au mauvais endroit ...

11
Hans Passant

Si vous décalez la représentation 64 bits restante à gauche de 8 bits (multipliez par 256), vous obtiendrez un numéro de carte de crédit bien formé et 3 positions vides pour les 3 numéros supplémentaires sécurisés (toutes des zéros, pour une raison quelconque). Il y a seulement 1 chance sur 10 que le nombre aléatoire donne un numéro CC bien formé.

5926 1069 5889 5232 000

7
user215054

Si vous utilisez le décodage d'équivalent binaire (1110101110110100) du nombre 23148855308184500, vous obtenez K, qui est le caractère mandarin pour l'exploitation minière et le minerai. Kmine pourrait signifier "mine de connaissance" ou quelque chose comme kmine Holdings Ltd. Peut-être y a-t-il une corrélation entre K (mine ou minerai) et Bank of America ou Visa?

6
bepark2000