ทำความเข้าใจบัตรเครดิตที่ถูกต้อง: โครงสร้างและการตรวจสอบความถูกต้อง
คู่มือฉบับสมบูรณ์สำหรับทำความเข้าใจโครงสร้างหมายเลขบัตรเครดิต วิธีการตรวจสอบความถูกต้องด้วย Luhn algorithm และความสำคัญของบัตรเครดิตที่ถูกต้องในการทำธุรกรรมที่ปลอดภัย
บัตรเครดิตเป็นส่วนสำคัญของการพาณิชย์ยุคใหม่ แต่คุณเคยสงสัยไหมว่าอะไรทำให้หมายเลขบัตรเครดิตมีความถูกต้อง? มันไม่ใช่แค่ตัวเลขสุ่มๆ หมายเลขบัตรเครดิตทุกหมายเลขปฏิบัติตามโครงสร้างเฉพาะและต้องผ่านการทดสอบการตรวจสอบทางคณิตศาสตร์
การทำความเข้าใจว่าบัตรเครดิตที่ถูกต้องทำงานอย่างไรนั้นมีความสำคัญสำหรับนักพัฒนาที่สร้างแอปพลิเคชัน e-commerce ผู้เชี่ยวชาญด้านความปลอดภัย และผู้บริโภคที่สนใจว่าข้อมูลทางการเงินของตนมีโครงสร้างอย่างไร
โครงสร้างของหมายเลขบัตรเครดิต
หมายเลขบัตรเครดิตทั่วไปเรียกทางเทคนิคว่า Primary Account Number (PAN) โดยปกติประกอบด้วยตัวเลข 13 ถึง 19 หลัก โดย 16 หลักเป็นความยาวที่พบบ่อยที่สุด (ใช้โดย Visa, Mastercard และ Discover)
หมายเลขแบ่งออกเป็นสามส่วนหลัก:
1. Major Industry Identifier (MII) และ Issuer Identification Number (IIN)
ตัวเลขหลักแรกของหมายเลขบัตรเครดิตคือ Major Industry Identifier (MII) ซึ่งระบุอุตสาหกรรมของผู้ออกบัตร:
- 1 และ 2: สายการบิน
- 3: การเดินทางและบันเทิง (เช่น American Express ขึ้นต้นด้วย 34 หรือ 37)
- 4: การธนาคารและการเงิน (Visa)
- 5: การธนาคารและการเงิน (Mastercard)
- 6: การค้าและธนาคาร (Discover)
- 7: ปิโตรเลียม
- 8: โทรคมนาคม
- 9: การกำหนดระดับชาติ
หกหลักแรก (รวมถึง MII) ประกอบเป็น Issuer Identification Number (IIN) ซึ่งในอดีตรู้จักกันในชื่อ Bank Identification Number (BIN) ส่วนนี้ระบุสถาบันเฉพาะที่ออกบัตร
2. Individual Account Identifier
ต่อจาก IIN ตัวเลขที่เหลือ ยกเว้นหลักสุดท้าย ประกอบเป็น individual account identifier ลำดับนี้ถูกกำหนดโดยธนาคารผู้ออกบัตรเพื่อระบุบัญชีของผู้ถือบัตรอย่างเฉพาะเจาะจง โดยมีความยาวได้ถึง 12 หลัก
3. หลัก Checksum
หลักสุดท้ายของหมายเลขบัตรเครดิตคือหลัก checksum ซึ่งคำนวณจากตัวเลขทั้งหมดที่นำหน้าโดยใช้สูตรเฉพาะที่เรียกว่า Luhn algorithm หลักนี้มีความสำคัญอย่างยิ่งสำหรับการตรวจสอบขั้นพื้นฐาน
วิธีการทำงานของ Luhn Algorithm
Luhn algorithm (หรือที่รู้จักกันในชื่อ "modulus 10" หรือ "mod 10" algorithm) เป็นสูตร checksum อย่างง่ายที่ใช้ตรวจสอบหมายเลขประจำตัวต่างๆ เช่น หมายเลขบัตรเครดิต หมายเลข IMEI และหมายเลข National Provider Identifier
ออกแบบมาเพื่อป้องกันข้อผิดพลาดที่เกิดขึ้นโดยบังเอิญ เช่น การพิมพ์หมายเลขผิดหรือการสลับตำแหน่งตัวเลขสองตัว มากกว่าการป้องกันการโจมตีที่เป็นอันตราย
นี่คือวิธีที่ algorithm ตรวจสอบหมายเลขบัตรเครดิต:
- เริ่มจากขวา: เริ่มจากหลักที่สองนับจากขวาและเลื่อนไปทางซ้าย คูณค่าของทุกหลักที่สลับกันด้วย 2
- จัดการตัวเลขสองหลัก: หากการคูณสองของหลักใดได้ผลลัพธ์มากกว่า 9 (เช่น 6 x 2 = 12) ให้นำหลักของผลคูณมาบวกกัน (เช่น 1 + 2 = 3)
- รวมตัวเลขทั้งหมด: บวกตัวเลขทั้งหมดเข้าด้วยกัน ทั้งที่ถูกคูณสอง (และอาจถูกลดค่า) และที่ไม่ได้ถูกเปลี่ยนแปลง (รวมถึงหลัก checksum สุดท้าย)
- ตรวจสอบผลรวม: หากผลรวมทั้งหมดเป็นทวีคูณของ 10 (กล่าวคือ ลงท้ายด้วย 0) หมายเลขบัตรเครดิตถือว่าถูกต้องในเชิงโครงสร้าง หากไม่เป็นเช่นนั้นถือว่าไม่ถูกต้อง
ตัวอย่างการตรวจสอบ
ลองทดสอบตัวเลขสมมติ: 49927398716
- คูณสองทุกหลักที่สลับกันนับจากขวา:
- 1 -> 2
- 8 -> 16 (1+6=7)
- 3 -> 6
- 2 -> 4
- 9 -> 18 (1+8=9)
- ลำดับกลายเป็น:
4, 9, 9, 4, 7, 6, 9, 7, 7, 2, 6 - รวมตัวเลข:
4 + 9 + 9 + 4 + 7 + 6 + 9 + 7 + 7 + 2 + 6 = 70 - เนื่องจาก 70 modulo 10 เท่ากับ 0 หมายเลขนี้จึงถูกต้อง
เหตุใดการตรวจสอบจึงมีความสำคัญ
การตรวจสอบหมายเลขบัตรเครดิตก่อนประมวลผลธุรกรรมเป็นขั้นตอนแรกที่สำคัญในการประมวลผลการชำระเงิน
แม้การผ่านการตรวจสอบ Luhn จะพิสูจน์เพียงว่าหมายเลขนั้นถูกต้องในเชิงโครงสร้าง (ไม่ใช่ว่าบัญชีมีอยู่จริง มีเงินทุน หรือผู้ที่ใช้งานได้รับอนุญาต) แต่ก็สามารถตรวจจับการพิมพ์ผิดและข้อผิดพลาดในการจัดรูปแบบได้ทันที ซึ่งช่วยประหยัดเวลาและค่าธรรมเนียมการประมวลผลโดยป้องกันไม่ให้ข้อมูลที่ไม่ถูกต้องถูกส่งไปยัง payment gateway
หากคุณเป็นนักพัฒนา การนำการตรวจสอบฝั่ง client มาใช้ด้วย Luhn algorithm จะให้ข้อมูลตอบกลับทันทีแก่ผู้ใช้ ช่วยปรับปรุงประสบการณ์การชำระเงิน
ลองด้วยตัวเอง
ต้องการดูการตรวจสอบนี้ในการใช้งานจริงหรือทดสอบว่าหมายเลขบัตรเครดิตถูกต้องในเชิงโครงสร้างหรือไม่?
ลองใช้เครื่องมือ Credit Card Validator ฟรีของเรา เครื่องมือนี้ตรวจสอบความถูกต้องของหมายเลขบัตรที่ป้อนเข้าไปทันทีโดยใช้ Luhn algorithm และระบุเครือข่ายผู้ออกบัตรตาม IIN เป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนาที่ทดสอบฟอร์มการชำระเงินและทุกคนที่อยากรู้ว่าหมายเลขบัตรของตนทำงานอย่างไร