23,148,855,308,184,500はマジックナンバーですか、それともまったくのチャンスですか?


556

このようなニュースレポートは、上記の数値がプログラミングのバグとして発生した可能性があることを示しています。

米国の男性が地元のガソリンスタンドに飛び出してタバコのパックを購入したところ、カードに23,148,855,308,184,500ドルが請求されたことがわかりました。

これは23兆ドル(14兆ポンド)で、米国の国債の何倍にもなります。*

16進数では$ 523DC2E199EBB4ですが、一見するとそれほど面白くありません。

誰がこれを引き起こしたであろうプログラミングエラーについて何か考えを持っていますか?


31
ガソリンスタンドの退屈?
txwikinger 2009

217
さて、オバマ氏は、赤字を緩和するための作業に新しい刺激策があったと言った...
クリストファー・クライン

25
まさにこの種類のクレジットカードは、この男がそのトランザクションを通過し、当座貸越料金がたったの$ 15であったことを示しています...ガソリンスタンドも、おそらくその2%のクレジットカード処理料金に不満を抱いています。
ニックバスティン

42
すぐに解雇されるプログラマーからのイースターエッグ;)
マシュー・ホワイト09/07/15

28
多分これはある種の新しい禁煙キャンペーンなのかもしれません。(「喫煙が本当にあなたにかかる費用を見てください!」:-)
スラップアウト2009

回答:


1447

セントを数値に追加すると、2314885530818450000が得られます。これは、16進数で2020 2020 2020 1250です。

パターンが見えますか?最初の6バイトはスペースで上書きされています(16進数20、12進数32)。


56
もう一度空白が無害ではないことを証明します。
エリック、

547
これが本当であれば、「今年のベストデバッグ」の賞を受賞しただけです:)
Stefano Borini

82
VISAは彼にNASAより多くを必要とするかもしれません。
ブランドン、

61
彼はパックではなくカートンを購入したようです-hex 1250 = dec 4688、または£46.88
John Rasch

157
オタク:間違ったクレジットカードのレポートをデバッグして、男性が喫煙するタバコのブランドと量を確認します;)
Stefano Borini

239

ちょっと待って; 何か怪しいことが起こっています。

スペースで埋められた説明は確かに良いように見えますが、(少なくとも部分的に)不自然かもしれません。

VISAによると、Visa Buxxプリペイドカードを使用した場合、snafuの影響を受ける顧客は「13,000人未満」でした。これまでにいくつかのニュースを見つけました。ニューハンプシャーのジョシュムシンスキー、テネシー州のジェイソンブライアン、テキサス州のロンシール、ベセルのカレンテイラーの10代の息子、オワトナの10代の少女、エリザベスルイス。

問題は、それらすべてがまったく同じ料金であるということです:$ 23,148,855,308,184,500.00。問題がスペースパディングであった場合、それらすべてがまったく同じ$ 0x1250($ 46.88)の請求があったことはどうですか?彼らの2人はガソリンスタンドでタバコを購入し、もう2人はレストランで支払い、ルイスは卵と牛乳を購入し、最後の1人はドラッグストアで購入しました。これらのさまざまなアイテムの価格は偶然同じですか?レストラン代は$ 46.88でいいようですが、たばこの箱はどうですか?牛乳と卵用‽

スペースパディングエラーは、0x1250定数を考慮しないことを除いて、理にかなっています。なぜそれらすべてが最後の単語の0x2020 2020 2020 1250代わりに、0x2020 2020 2020 2020または異なる数字で終わったのですか?

うーん、13,000人の顧客だけが影響を受けた場合、それはどういうわけか正確に特定の請求がエラーを引き起こしたのかもしれません。その場合は、単なるフィールドエラーではありません。テキストフィールドが64ビット整数として解釈されているだけの場合は、他の量が原因ではないため、13,000未満ではなく、すべての人に影響が及んだのです。それでも、同じ週に13,000人がまったく同じ金額を請求した可能性があるのはなぜですか。

彼らはそれが「一時的なプログラミングエラー」であると言います、そしてそれはたぶんそうであるかもしれません、しかしそれはハッキングなものであることができましたか?その場合、それはおそらくマジックナンバーでしょう。実際、これは両方の組み合わせである可能性があります。一部のハッカーが0x1250の自動請求を行い、スペースパディングエラーと組み合わされて、1つまたは両方のエラーが検出されました。

登録は答えは確かにパディングフィールドエラーですが、コメントの一つは、銀行および銀行業務ソフトウェアは、明示的に行って以来、数はおそらく最も近い$ 100(そうに丸めされた言及が、それらはすべて同じである理由には広がらないと考えています精度を確保するための長さに)。

(同様の以前のエラーのレポートもあります。)


ジェイソンブライアントの法案:

ジェイソンブライアントの法案

エリザベスルイスの法案:

エリザベスルイスの法案

ロンシールの法案:

ロンシールの法案

ジョシュ・ムジンスキーの法案:

ジョシュ・ムジンスキーの法案


8
おそらく、16進数の1250 = dec 4688は、不正チェックのある種の追加のメソッドを引き起こすための最小値です。これとまったく同じ場合、コードにバグが発生しますか?
PeteT 2009

6
+1 13,000人の顧客が同時にチャージバックした場合、どうなるか想像できますか?:P
ページマン2009

11
@ petebob796実際には各バイトは別々に扱われるため、1250(12 50)は18と80です。18は制御文字で、80は大文字のP(少なくともASCII)です。うーん... Ctrl + P?
WildJoe 2009

1
12.50ドルは、比較的小さく丸い数字です。数百万件のトランザクションのうち、13,000件がその正確な金額であったことはまったく驚くことではありません。ただし、上書きをトリガーした他のロジックの欠陥と組み合わせる必要があります。
トムA

4
12.50は小さくて丸いですが、0x12.50とは完全に異なります。そして、タバコの1パックに12.50ドルを払っている人がいるなら、私は辞めてうれしい。

62

カードで購入すると、ソフトウェアはすぐにオンラインになり、購入に十分な資金があることを確認しますが、トランザクションの資金のみを保留します。稼働日の終わりに、ソフトウェアは最後の24時間に行われたすべてのトランザクションを収集し、処理のために取得銀行に送信します。

銀行への提出は決済と呼ばれ、非常に厳密な形式のプレーンテキストファイルを送信することで行われます。(これはすべて数十年前に開発されたものであり、現在それを使用しているシステムの数が多いため、近代化が困難です)

各トランザクションはテキスト行としてファイルに表示され、その一部はトランザクション値です。このフィールドは11桁の数字(左側にゼロが埋め込まれる)でなければならず、常に最小公分母(この場合はセント)の値を保持します。11桁の数字は、どの通貨の値にも適しています。

この場合の支払いプロセッサは、送信ソフトウェアにいくつかの変更を加え、誤ってゼロパディングをスペースパディングに置き換えたようです。これは、a)サービスプロバイダー、b)銀行の買収、c)受け取りのないVisaによってどのようにして得られたのでしょうか。その和解ファイルの正味額(13,000の高額取引)は天文学的なものでしたが、それもおそらくどこかで寄与している要因でした。


15
「11桁の数字は、どの通貨の値にも対応します。」-ジンバブエドルはどうですか?
quant_dev 2009

6
ジンバブエのビザで支払うのは誰ですか?(^_^)
ЯegDwight

それは良いコメントです。しかし、それがソフトウェアの不具合だった場合、a)サービスプロバイダー、b)買収銀行、c)Visaがそれをまったく見たという証明はありません。それはいつでも発生する可能性があります。
Isaac Lubow、2010

20

末尾のゼロを削除すると、VISAカード番号として検証されます。彼らはカードをスワイプし、スワイプが失敗したと思って手動で番号を入力したと思います。


9
笑-彼のVisaカード番号を公開したばかりですか?..彼の名前はもう一度何ですか?
ian_scho 2009

4
psこれが最も可能性の高い回答です。最初の回答の200以上の賛成票はオタクによるものです。
ian_scho 2009

14
いいえ、それはバグであり、使用上のエラーではありません。約13000人の顧客がこのバグの影響を受けました。
グッファ2009

8
最初の6バイトが偶然スペースになる可能性はどれくらいですか?
Robert Harvey、

1
あり得ないことです。異なる顧客との複数のトランザクションがあり、すべて同じ金額で行われていました。
ロディ

10

究極の謎は、まだ12 50の出所です。これらはCtrl + R、PのASCIIコードです。これは、QuickBooksの検証コードを入力するために入力する必要がある秘密のキーストロークです。

リンク:検証コードを入力する場所

かなり偶然です。これらのキーを間違った場所に入力するとどうなるのだろう...


7

左に64ビット表現を8ビット左にシフトすると(256を掛けて)正しい形式のクレジットカード番号と3つの空の位置が得られます。これは3つの安全な追加番号(何らかの理由ですべてゼロ)です。乱数が正しい形式のCC番号を与える可能性は10分の1です。

5926 1069 5889 5232 000


6

数値23148855308184500のバイナリ同値(1110101110110100)デコードを使用すると、マイニングと鉱石のマンダリン文字であるKungが得られます。Kmineは「知識鉱山」、またはkmine Holdings Ltdのようなものを意味する可能性があります。おそらく、K(鉱山または鉱石)とバンクオブアメリカまたはビザの間に相関関係がありますか?


56
これよりもずっと深いと思います。この数にクフ王のピラミッドの高さを掛けてから、2012年までに3番目ごとの数を掛けると、アルファケンタウリまで正確に1/666の長さが得られます。
serg、2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.