티스토리 뷰

 

 

꺄- 자가 격리 중에 너무 할 게 없고 심심하신 분들은

가지고 계신 신용카드를 살포시 꺼내보셔서

카드 번호가 이 방법에 잘 적용이 되었는지 확인해보세용 

:윙크:

 

 

예를 들어서 누군가가 신용카드 번호를 입력했는데 그 번호가

1234 5678 9012 3456 이라고 가정을 해봅시다.

 

저 카드 번호가 실제로 존재하는 신용카드 번호가 맞는지 확인하는 방법을 알아보기로 해요. (이걸 누가 필요로 할까 싶지만.. ㅎㅎ)

 

 

 

Step 1.

 우선 카드번호의 맨 마지막 자리 하나를 뚝 떼어내서 아무도 모르게 잘 보관해둡니다 (6)

그러면 남는 번호는 1234 5678 9012 345 가 되죠.

 

 

 

Step 2.

그리고 맨 끝자리부터 하나 건너 하나씩 두 배로 숫자를 뻥튀겨줍니다. (16자리 신용카드의 경우 맨 앞자리부터도 가능)

2  2  6  4     10  6  14  8      18  0  2  2      6  4  10

 

그러면 이런 모양이 되죠.

 

 

Step 3.

이제 이 숫자를 모두 더할건데, 두 자리 숫자들을 그대로 쓰지않고,

십의 자리 수와 일의 자리 수를 더한 값으로 만들어 한 자리 숫자로 꾸역꾸역 바꿔줍니다.

우선 이 방법으로 우리에게 주어진 두 자리 숫자를 모두 바꿔보자면

 

2 2 6 4     1 6 5 8     9 0 2 2     61

 

이러한 모양이 될거란 말이죠.

 

이제 모두 한 자리 숫자가 되었으니, 주어진 모든 숫자를 다 더해봅시다 ㅎㅎ

 

 

2 + 2 + 6 + 4 + 1 + 6 + 5 + 8 + 9 + 0 + 2 + 2 + 6 + 4 + 1 = 58 라는 숫자가 나와요.

 

우리가 얻어낸 소중한 58 ㅎㅎ

 

 

 

 

Step 4.

이 58라는 숫자에 얼마를 더하면 가장 가까운 10의 배수(60)가 될까요??

바로바로 2 이죠 헤헷-

 

 

Step 5.

이 2를 우리가 아까 제일 처음에 뚝 떼어서 고이 보관해두었던 그 숫자와 비교해보면 끝입니다.

제일 처음에 보관해두었던 숫자는.... 6이었죠!!

2 ≠ 6

서로 일치하지 않는군요.

 

그렇다면 이 고객이 적어낸 신용카드의 번호는

유효하지 않은 신용카드 번호입니다 ㅎㅎ

 

 

끝자리가 2이어야했으므로,

만약 1234 5678 9012 3452 이라는 번호였다면

이건 위의 로직에 의하면 유효한 신용카드 번호가 됩니다.

 

 

이런 걸 언제 쓸 일이 있을까 싶긴 하지만.... ㅋㅋㅋㅋ

지금 제가 누군가가 입력한 신용카드 번호가 유효한 번호인지 확인하는 함수를 짜야하는 상황이다보니 ㅋㅋ

적어도 저한테는 필요한 일이네요 ㅜㅜ

 

 


그리고 온라인에서 내 카드번호 입력을 마쳤을 때자동으로 비자카드인지, 마스터카드인지 인식을 해서 해당 카드 로고만 남고 나머지 로고들은 모두 비활성화되는 것은각 신용카드 네트워크의 고유한 시작번호로 식별을 하는 것인데요.캐나다에서 흔히 보이는 카드들로 예를 들어보자면
아멕스 카드 번호는 3으로 시작하고,비자 카드는 4로 시작하고,마스터카드는 5로 시작해요.
그래서 내가 입력한 카드번호가 4로 시작하는 번호라면"아하!! 이것은 비자카드이군!!" 하고 인식을 하게 되는 것입니덩 ㅎㅎ


 

 

댓글