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

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

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

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

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

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



답변

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

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


답변

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

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

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의 청구서 :

조쉬 머신 스키의 법안


답변

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

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

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

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


답변

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


답변

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

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

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


답변

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

5926 1069 5889 5232 000


답변

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