ตัวเลขบนบัตรเครดิต ???

1. เค้ารู้ได้งัยว่า เลขบัตรเครดิตนั้นถูกต้อง ?
2. บัตรเครดิต นั้น เป็นของ อะไร , visa , master, .. ?

ถ้าจะอธิบายคงต้องเริ่มจาก คำถามที่ 2 ก่อนดีกว่า
ถาม รู้ได้งัยว่าบัตรเครดิตนั้นเป็นของอะไร ?

โครงสร้าง ของ ตัวเลขบนบัตรเครดิต
1st digit  : the Major Industry Identifier (MII) : จะบอก ประเภทของธุรกิจที่่เป็นคนออกบัตรให้คุณใช้ .. เช่น Visa, Mater Card, American express , ..

MII Digit Value Issuer Category
0 ISO/TC 68 and other industry assignments
1 Airlines
2 Airlines and other industry assignments
3 Travel and entertainment
4 Banking and financial
5 Banking and financial
6 Merchandizing and banking
7 Petroleum
8 Telecommunications and other industry assignments
9 National assignment

ส่วนมากที่เราๆ ท่านๆ คุ้นเคยก็คงต้อง ขึ้นด้วยเลข 3, 4 และ 5 .. เอ้าถึงเวลาควัก บัตรเครดิตกันออกมาดูหน่อยซิ
ตอบ อืมม ถูก ของผม ขึ้นด้วย เลข 4 เกี่ยวกับ Banking and financial จริงๆ

ถามต่อ แล้วจะรู้ได้งัย อ่ะ ว่าบัตรผมเป็น Visa , Master card หรือ American Express … ?
ตอบ ดูที่ 6 digits แรกครับนับ รวม MII เข้าไปด้วยนะครับ ตามตารางข้างล่างเลย ไม่ผิดเพี้ยนไปจากนี้แน่นอน

Issuer Identifier Card Number Length
Diner’s Club/Carte Blanche 300xxx-305xxx,
36xxxx, 38xxxx
14
American Express 34xxxx, 37xxxx 15
VISA 4xxxxx 13, 16
MasterCard 51xxxx-55xxxx 16
Discover 6011xx 16

เออ จริงแฮะ ของผมขึ้นด้วยเลข 4 เป็น VISA

ถาม แล้วตรงไหนมันถึงจะบอกหมายเลขบัญชีของผมจริงๆ ล่ะเนี่ย  ?
ตอบ เดาถูกครับ ก็ ตั้งแต่ ตำแหน่งที่ 7 เป็นต้นไปนั่นแหละ จนถึงตัวเลขก่อนสุดท้ายครับ (? ก่อนสุดท้าย)

เพราะว่าตัวเลขก่อนสุดท้าย คือ ตัวเลขที่เอาไว้ check ความถูกต้องครับของตัวเลขบนบัตรของคุณครับ (กลับไปคำถามแรก) … ซึ่งถ้าอยากเรียกแบบ เท่ ๆ  ก็ได้ เราเรียกตัวเลขที่ทำหน้าที่แบบนี้ว่า  “Check Digit

ถาม แล้วเค้ารู้ได้งัยว่า เลขบัตรเครดิตนั้นถูกต้อง ?
ตอบ ใช้ the Luhn algorithm ครับ

Luhn Algorithm
1.  เขียน หมายเลขบนบัตรเครดิตของคุณ
4408-0412-3456-7890

2.  คูณด้วย 2 โดยเริ่มจากตำแหน่งก่อนสุดท้าย ตัวเว้นตัว ( ห้ามคูณ 2 ที่ chek digit)

(4*2)  4  (0*2) 8 – (0*2)  4  (1*2)  2 – (3*2)  4  (5*2)  6 – (7*2)  8 (9*2) 0

จะได้
(8 ) 4 (0) 8 – (0) 4 (2) 2 – (6) 4 (10) 6 – (14) 8 (18 ) 0

3. ถ้ามีตัวไหนเกิน 10 ให้ ลบด้วย 9

(8 ) 4 (0) 8 – (0) 4 (2) 2 – (6) 4 (10-9) 6 – (14-9) 8 (18-9) 0

จะได้
(8 ) 4 (0) 8 – (0) 4 (2) 2 – (6) 4 (1) 6 – (5) 8 (9) 0

4. นำตัวเลขที่ได้มาบวกกันทั้งหมด
(8 ) + 4 + (0) + 8 + (0) + 4 + (2) + 2 + (6) + 4 + (1) + 6 + (5) + 8 + (9) + 0
จะได้ผลลัพธ์คือ
67

5. mod 10    ถ้าได้ 0 คือตัวเลขที่ถูก  แต่ถ้าไม่ใช่ 0 คือผิด
ในที่นี้ ผลลัพธ์ 67 mod 10 ได้ 7  แสดงว่าเลข credit card ชุดนี้ผิดครับ

แต่อย่าเพิ่งตกใจ !! …  เรามีวิธีที่ทำให้เลขชุดนี้ถูกต้อง คือ ใช้ check digit นี่แหละครับ เพราะ check digit ไม่ต้องคูณกับ 2 และเป็นตัวเลขที่ไม่ีมีอะไรมายุ่งกับมัน .
ดังนั้น ถ้าเราต้องการทำให้เลขชุดนี้ถูกต้อง เราต้องมาแก้ที่ค่าของ check digit ครับ
เนื่องจากผลลัพธ์ที่เราได้คือ 67  ซึ่ง mod 10 แล้วไม่เท่า่กับ 0  ดังนั้น
เราต้องคิดว่าจะทำยังงัย ให้ 67 mod 10 แล้วเท่ากับ 0   ,ตอบ  เราต้องเอา 67 บวก 3 จะได้  70 ครับซึ่ง  70 จะ mod 10 แล้วได้เท่ากับ 0 .. แน่นอนการบวก 3 เราก็ต้องไปบวกกับ ตัวเลขในตำแหน่งที่ไม่มีอะไรมายุ่งกับมัน หรือ เรียกให้เท่ ๆ อีกว่า ค่าคงที่ ซึ่งในที่นี่คือ Check digit นั่นเอง
สรุปจะได้ ตัวเลขที่ถูกต้องเป็น 4408-0412-3456-7893 ครับ

Reference sites : โอว … ต้องขอโทษครับ เพราะว่า อันนี้ผมผิดพลาดเอง ลืม add เก็บไว้

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: