23,148,855,308,184,500이 마법의 숫자입니까, 아니면 단순한 기회입니까?


556

같은 뉴스는보고 이 하나가 위의 번호가 프로그래밍 버그로 제기했을 수 있음을 나타냅니다.

미국의 한 남자가 담배 한 갑을 사기 위해 지역 주유소에 튀어 나와 자신의 카드가 $ 23,148,855,308,184,500에 청구되었다.

그것은 미국의 국채의 몇 배인 23 조 달러 (14 조 파운드)입니다. *

16 진수로 $ 523DC2E199EBB4는 첫눈에 그다지 흥미롭게 보이지 않습니다.

어떤 프로그래밍 오류로 인해이 문제가 발생했는지에 대한 생각이 있습니까?


31
지루한 주유소 참석자?
txwikinger

217
그는 ... 적자를 완화하기 위해 작품의 새로운 경기 부양책을 한 것으로 잘 오바마 대통령은 말을했다
크리스토퍼 클라인에게

25
정확히이 사람이 그 거래를 겪고 초과 인출 수수료로 단 15 달러를 촉발 한 신용 카드의 종류는 무엇입니까?
Nick Bastin

42
곧 해고 될 프로그래머의 이스터 에그;)
Matthew Whited

28
어쩌면 이것은 일종의 새로운 금연 캠페인 일 것입니다. ( "실제로 흡연 비용이 얼마나되는지보십시오!":-)
Slapout

답변:


1447

숫자에 센트를 추가하면 2314885530818450000을 얻습니다. 16 진수는 2020 2020 2020 1250입니다.

패턴이 보입니까? 처음 6 바이트는 공백으로 대체되었습니다 (16 진 20, 12 월 32 일).


56
다시 한 번 그 공백을 증명하는 것은 무해하지 않습니다.
Eric

547
이것이 사실이라면, 당신은 단지 "올해의 최고의 디버그":)에 대한 상 수상
스테파노 Borini

82
VISA는 그를 NASA보다 더 필요로 할 수 있습니다.
Brandon

61
팩이 아닌 카톤을 구입 한 것 같습니다 – 16 진수 1250 = 12 월 4688 또는 £ 46.88
John Rasch

157
바보 : 브랜드와 사람이 자신의 잘못된 신용 카드 보고서를 디버깅에 의해 담배 담배의 양을 알아)
스테파노 Borini

239

잠깐만 기다려 봐; 비린내가 있습니다.

공백으로 채워진 설명은 확실히 좋은 것처럼 보이지만 (적어도 부분적으로) 의심스러운 것일 수 있습니다.

VISA는 Visa Buxx 선불 카드를 사용하여 snafu의 영향을받는 고객 수가 13,000 명 미만이라고 밝혔다. 지금까지 몇 가지 뉴스를 찾았습니다. 뉴햄프셔의 Josh Muszynski, 테네시의 Jason Bryan, 텍사스의 Ron Seale, Bethel의 Karen Taylor의 10 대 아들, 10 대 소녀 인 Owatonna의 Elizabeth Lewis.

문제는 모두 $ 23,148,855,308,184,500.00 과 동일한 요금이 부과 된다는 것입니다. 문제가 스페이스 패딩 인 경우, 모두 $ 0x1250 (46.88)의 청구 금액이 정확히 같은 것은 무엇입니까? 그들 중 2 명은 주유소에서 담배를, 다른 2 명은 식당에서 돈을, 루이스는 계란과 우유를, 약국에서 마지막으로 구입했습니다. 이 모든 다양한 품목의 비용이 동일합니까? 식당 계산서에 46.88 달러는 괜찮아 보이지만 담배 한 갑은? 우유와 계란‽

공간 패딩 오류는 0x1250 상수를 고려하지 않는 한 의미가 있습니다. 왜 마지막 단어에서 다른 숫자 0x2020 2020 2020 1250대신 0x2020 2020 2020 2020또는 다른 숫자로 끝나는 것 입니까?

흠, 13,000 명의 고객 만 영향을받는 경우, 정확한 특정 청구로 인해 오류가 발생했을 수 있습니다. 이 경우 이는 단순한 필드 오류 이상입니다. 텍스트 필드가 64 비트 정수로 해석 된 경우 다른 양으로 인해 왜 13,000이 아닌 모든 사람에게 영향을 미쳤습니까? 그럼에도 불구 하고 같은 주에 정확히 13,000 명의 사람들이 정확히 같은 금액을 청구 할 수 있었습니까?

그들은 그것이 "일시적인 프로그래밍 오류"라고 말하는데, 아마도 그럴 수도 있지만 해킹 일 수 있습니까? 이 경우 아마도 마법의 숫자 일 것입니다. 실제로, 일부 해커가 0x1250 자동 충전을하면서 공간 패딩 오류와 결합되어 하나 또는 두 가지 오류가 모두 감지 될 수 있습니다.

등록은 의견 중 하나가 숫자가 가능성이 명시 적으로가는 가장 가까운 은행 및 금융 소프트웨어 이후 가능성이 $ 100 (반올림되고 언급하지만 대답은, 실제로 패딩 필드 오류입니다,하지만 그들은 모두 같은 이유에 확장하지 않는 것을 생각 정밀도를 보장하기 위해 길이로).

( 유사한 초기 오류에 대한 보고서 도 있습니다 .)


Jason Bryant의 청구서 :

Jason Bryant의 청구서

엘리자베스 루이스의 법안 :

엘리자베스 루이스의 법안

Ron Seale의 청구서 :

론 시일의 법안

Josh Muszynski의 청구서 :

조쉬 머신 스키의 법안


8
아마도 16 진수 1250 = dec 4688 숫자가 일종의 추가 사기 검사 방법을 유발할 수있는 최소값 일 것입니다. 이것이 정확히 같다면 코드의 버그가 발생합니까?
PeteT

6
+1 13,000 명의 고객이 동시에 지불 거절을하면 어떻게 될지 상상할 수 있습니까? : P
pageman

11
@ petebob796 실제로 각 바이트는 개별적으로 처리되므로 1250 (12 50)은 18과 80입니다. 18은 제어 문자이고 80은 대문자 P입니다 (적어도 ASCII). 흠 ... Ctrl + P?
WildJoe

1
$ 12.50은 비교적 작고 둥근 숫자입니다. 수백만 건의 트랜잭션 중 13,000 건이 그 정확한 금액을 가지고 있다는 것은 전혀 놀랄 일이 아닙니다. 그러나 덮어 쓰기를 유발 한 다른 로직 결함과 결합해야합니다.
Tom A

4
12.50은 작고 둥글지만 0x12.50과는 완전히 다른 숫자입니다. 그리고 담배 한 갑에 $ 12.50를내는 사람이 있다면 나는 그만두 게되어 기쁘다.

62

카드로 구매할 때 발생하는 결과는 소프트웨어가 즉시 온라인 상태가되어 구매에 필요한 자금이 충분하지만 거래를위한 자금 만 보유한다는 것입니다. 업무 일이 끝나면 소프트웨어는 지난 24 시간 동안 이루어진 모든 거래를 수집하여 처리를 위해 인수 은행에 제출합니다.

은행에 제출하는 것을 결제라고하며 일반 텍스트 파일을 매우 엄격한 형식으로 전송합니다. (이것은 모두 수십 년 전에 개발되었으며 현재 사용중인 시스템의 수는 현대화하기가 어렵습니다)

각 트랜잭션은 파일에 텍스트 줄로 나타나며 그 일부는 트랜잭션 값입니다. 이 필드는 11 자리 숫자 (왼쪽에 0이 채워짐) 여야하며 항상 최저 공통 분모 (이 경우 센트)로 값을 보유합니다. 11 개의 숫자는 모든 통화의 값에 적합합니다.

이 경우 지불 처리기가 제출 소프트웨어를 일부 변경하여 제로 패딩을 공간 패딩으로 잘못 대체 한 것 같습니다. a) 서비스 제공 업체, b) 은행 인수 및 c) 비자를받지 않고 비자를받는 방법은 저를 피합니다. 결제 파일의 순 가치 (13,000 개의 고 가치 거래)는 천문학적 일 수 있으며 어딘가에 기여한 요인 일 수도 있습니다.


15
"11 자리 숫자는 모든 통화 값에 적합합니다." -짐바브웨 달러는 어떻습니까?
quant_dev

6
짐바브웨에서 VISA로 지불하는 사람은 누구입니까? (^_^)
ЯegDwight

좋은 의견입니다. 그러나 소프트웨어 결함 인 경우 a) 서비스 제공 업체, b) 은행 인수 및 c) Visa가 모두 본 사실을 증명할 수는 없습니다. 어느 시점에서나 발생할 수 있습니다.
Isaac Lubow

20

후행 0을 제거하면 VISA 카드 번호로 확인됩니다. 내 생각에 그들은 카드를 강타한 다음 수동으로 숫자를 입력하여 강타가 실패했다고 생각합니다.


9
lol-방금 그의 비자 카드 번호를 게시 했습니까? .. 그의 이름은 다시 무엇입니까?
ian_scho

4
추신 :이 답변이 가장 가능성이 높은 답변입니다. 첫 번째 답변에 대한 200 개 이상의 투표자들은 괴짜들입니다.
ian_scho

14
아니요, 사용 오류가 아닌 버그였습니다. 약 13000 명의 고객이이 버그의 영향을 받았습니다.
Guffa

8
처음 6 바이트가 우연히 공백 일 가능성은 무엇입니까?
Robert Harvey

1
다른 고객과의 거래가 여러 건 있었으며 모두 정확히 같은 금액을 사용했습니다!
Roddy

10

궁극의 미스터리는 여전히 12 50이 나오는 곳입니다. 이 코드는 Ctrl + R, P의 ASCII 코드입니다. QuickBooks의 유효성 검사 코드를 입력하기 위해 입력해야하는 비밀 키 입력입니다.

링크: 인증 코드를 입력 할 위치

우연의 일치입니다. 이 키를 잘못된 곳에 입력하면 어떻게되는지 궁금합니다.


7

왼쪽으로 64 비트 표현을 8 비트 왼쪽으로 이동하면 (256을 곱한 값) 잘 구성된 신용 카드 번호와 3 개의 안전한 추가 번호에 대해 3 개의 빈 위치 (어떤 이유로 든 모두 0)를 얻게됩니다. 난수가 잘 구성된 CC 번호를 제공 할 가능성은 10 개 중 1 개입니다.

5926 1069 5889 5232 000


6

숫자 23148855308184500의 이진 동등 (1110101110110100) 디코드를 사용하는 경우 마이닝 및 광석에 대한 만다린 문자 인 K get을 얻게됩니다. Kmine은 "지식 지식"또는 kmine Holdings Ltd와 같은 것을 의미 할 수 있습니다. 아마도 K (mine or ore)와 Bank of America 또는 Visa 사이에는 상관 관계가 있습니까?


56
나는 이것보다 모든 것이 더 깊다고 생각합니다. 이 숫자에 Khufu의 피라미드 높이를 곱한 다음 2012 년까지 세 번째 숫자를 곱하면 Alpha Centauri의 길이는 정확히 1/666이됩니다.
serg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.