
Hiện nay, thẻ tín dụng giờ đã trở thành một vật dụng quen thuộc với hầu hết mọi người. Mỗi lần cần thanh toán online, anh em chỉ cần gõ dãy số in trên thẻ, điền CCV, sau đó có thể nhập OTP là hoàn thành giao dịch. Tuy nhiên, đã bao giờ anh em thắc mắc những con số trên thẻ có ý nghĩa gì không Liệu có quy tắc nào để tạo ra chúng, và tại sao hệ thống thanh toán có thể phát hiện ra lỗi gõ sai ngay lập tức mà không cần gửi yêu cầu kiểm tra về ngân hàng?
Thẻ tín dụng đã trở thành một phần quan trọng trong cuộc sống của loài người
Trên thực tế, có một quy tắc toán học đơn giản là thuật toán Luhn để kiểm tra số thẻ tín dụng. Mà không chỉ thế, nhiều mã số khác trong cuộc sống cũng được kiểm tra bằng toán học, ví dụ như mã vạch sản phẩm, số theo dõi bưu kiện, số tài khoản ngân hàng hoặc ISBN sách đều dùng các thuật toán kiểm tra tính hợp lệ tương tự Luhn để phát hiện lỗi nhập liệu.
Thoạt nhìn, dãy số trên thẻ tín dụng chỉ như một chuỗi ký tự ngẫu nhiên. Nhưng thực tế, chúng được sắp xếp có cấu trúc rõ ràng. Chữ số đầu tiên của thẻ cho anh em biết loại tổ chức phát hành (Major Industry Identifier). Ví dụ như thẻ Visa luôn bắt đầu bằng số 4, thẻ MasterCard thì thường bắt đầu bằng số 5, và thẻ Discover luôn mở đầu bằng số 6.
Thẻ tín dụng đã trở thành một phần quan trọng trong cuộc sống của loài người
Trên thực tế, có một quy tắc toán học đơn giản là thuật toán Luhn để kiểm tra số thẻ tín dụng. Mà không chỉ thế, nhiều mã số khác trong cuộc sống cũng được kiểm tra bằng toán học, ví dụ như mã vạch sản phẩm, số theo dõi bưu kiện, số tài khoản ngân hàng hoặc ISBN sách đều dùng các thuật toán kiểm tra tính hợp lệ tương tự Luhn để phát hiện lỗi nhập liệu.
Cấu trúc số thẻ tín dụng
Thoạt nhìn, dãy số trên thẻ tín dụng chỉ như một chuỗi ký tự ngẫu nhiên. Nhưng thực tế, chúng được sắp xếp có cấu trúc rõ ràng. Chữ số đầu tiên của thẻ cho anh em biết loại tổ chức phát hành (Major Industry Identifier). Ví dụ như thẻ Visa luôn bắt đầu bằng số 4, thẻ MasterCard thì thường bắt đầu bằng số 5, và thẻ Discover luôn mở đầu bằng số 6.
Cấu trúc thẻ tín dụng. Ví dụ thẻ này, bỏ số check digit đi sẽ còn 4024 6072 3695 074
Năm đến bảy chữ số tiếp theo xác định ngân hàng hoặc tổ chức tài chính phát hành thẻ (Issuer Identifier). Sau đó là phần dành cho số tài khoản cá nhân của bạn trong ngân hàng đó. Và quan trọng nhất: con số cuối cùng, gọi là "check digit", không liên quan gì đến tài khoản hay ngân hàng, mà được thêm vào chỉ để phục vụ cho một bài toán kiểm tra tính hợp lệ thông qua thuật toán Luhn.
Về mặt kỹ thuật, các tổ chức phát hành sẽ chọn số tài khoản cá nhân trước, rồi dùng thuật toán Luhn tính toán ra số "check digit" sao cho cả dãy số thỏa mãn điều kiện toán học kiểm tra, chứ không phải lấy ngẫu nhiên như chúng ta lầm tưởng.
Thuật toán Luhn: nguồn gốc và cách hoạt động
Như vậy, việc check digit được tạo ra dựa trên thuật toán Luhn. Thuật toán này do nhà nghiên cứu Hans Peter Luhn của IBM phát minh và đăng ký bằng sáng chế vào năm 1960. Thuật toán này vô cùng đơn giản nhưng hiệu quả. Nguyên lý như sau:
- Bỏ qua chữ số cuối cùng, lấy toàn bộ dãy số còn lại.
- Bắt đầu từ phải sang trái, nhân đôi mỗi chữ số ở vị trí cách một.
- Nếu phép nhân đôi cho ra số có hai chữ số, cộng gộp các chữ số đó lại (ví dụ 7 x 2 = 14 thì tính 1 4 = 5).
- Cộng tất cả lại với check digit. Nếu tổng chia hết cho 10, số thẻ hợp lệ; nếu không, hệ thống sẽ báo lỗi.
Như trong hình này, với số thẻ ví dụ ở trên, anh em bỏ số cuối cùng (check digit ra). Sau đó từ phải qua trái, bắt đầu từ số 4, cứ cách 1 số thì sẽ nhân hai. Rồi tính tổng lại tất cả lại. Nếu phép nhân cho ra kết quả là 18, anh em lấy 1 8
Mình đã thử với mấy thẻ tín dụng của mình và thấy là tổng đều chia hết cho 10. Điểm thú vị mà anh em có thể thấy được là giải thuật này chỉ bao gồm các phép tính cơ bản như nhân và cộng. Vì thế, nó được tích hợp sẵn trong phần mềm xử lý giao dịch mà không cần gọi qua bên thứ ba. Điều này giúp tiết kiệm thời gian và chi phí cho doanh nghiệp.
Cơ chế này giúp phát hiện hầu hết lỗi thường gặp khi nhập số thẻ: gõ nhầm một con số hoặc hoán đổi hai con số liền kề. Chẳng hạn, nếu bạn nhập 6 thành 5, tổng sẽ thay đổi và lập tức không còn chia hết cho 10. Tuy nhiên, có một ngoại lệ duy nhất là khi đổi chỗ 0 và 9: tức 09 đổi thành 90), tổng vẫn giữ nguyên.
Quảng cáo
Theo nghiên cứu của nhà toán học Jacobus Verhoeff, 90% lỗi nhập số thực tế là nhầm một số hoặc hoán đổi hai số cạnh nhau. Thuật toán Luhn bắt được gần hết các trường hợp này ngoại trừ 09/90.
Để khắc phục, nhà toán học Jacobus Verhoeff năm 1969 đã phát triển một thuật toán phức tạp hơn, có thể phát hiện cả trường hợp 09/90 cùng nhiều lỗi tinh vi khác. Dù vậy, Verhoeff không phổ biến vì độ phức tạp cao, trong khi Luhn đã quá đơn giản và đủ tốt cho thực tế.
Vì sao Luhn được tin dùng và giới hạn của thuật toán này
Mỗi lần anh em thanh toán, dữ liệu thẻ cuối cùng vẫn được gửi đến hệ thống xác thực của ngân hàng. Nhưng nếu mọi lỗi gõ nhầm đơn giản cũng phải qua bước xác thực này, giao dịch sẽ tốn thêm thời gian và doanh nghiệp phải trả thêm phí xử lý. Luhn đóng vai trò như lớp xác thực đầu tiên khi chỉ cần vài phép tính cơ bản, hệ thống thanh toán tại chỗ đã loại bỏ được gần 90% lỗi nhập liệu. Nhờ đó, người dùng không mất công chờ đợi, còn doanh nghiệp thì tiết kiệm chi phí.
Tuy nhiên, một điểm lưu ý là thuật toán Luhn chỉ loại bỏ số thẻ không hợp lệ thôi. Vãn còn tồn tại trường hợp có số giả mạo vượt qua lớp kiểm tra của thuật toán này. Khi đó, các bước xác thực kiên cố hơn sẽ được thực hiện phía sau bởi hệ thống ngân hàng để xử lý gian lận hoặc lỗi phức tạp hơn.
Điểm mạnh của Luhn là đơn giản, nhưng nó cũng có giới hạn. Như đã nói, nếu đổi chỗ 0 và 9 thì thuật toán không phát hiện được. Về mặt toán học, việc hoán đổi hai chữ số liền kề thường làm thay đổi tổng kiểm tra (ví dụ cặp số 3 và 1 khi đảo chỗ sẽ khiến tổng khác đi 2 đơn vị), do đó chắc chắn không còn chia hết cho 10. Nhưng riêng trường hợp 0 và 9 thì tổng lại giữ nguyên, dẫn đến "khe hở" duy nhất này.
Kết luận
Lần tới khi bạn thấy thông báo "số thẻ không hợp lệ" hiện lên, hãy nhớ rằng có một "mánh toán học" nho nhỏ đang âm thầm hoạt động phía sau. Thuật toán Luhn – dù ra đời từ thập niên 1960 – đến nay vẫn là công cụ đắc lực, giúp bảo vệ người dùng và tiết kiệm chi phí cho doanh nghiệp. Một minh chứng rõ ràng rằng đôi khi, giải pháp đơn giản lại chính là giải pháp bền vững nhất.
Quảng cáo
==***==
==***==
Nơi hội tụ Tinh Hoa Tri Thức - Khơi nguồn Sáng tạo
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com
---
Khóa học Hacker và Marketing từ A-Z trên ZALO!
Khóa học Hacker và Marketing từ A-Z trên Facebook!
Bảo mật và tấn công Website - Hacker mũ trắng
KHÓA HỌC LẬP TRÌNH PYTHON TỪ CƠ BẢN ĐẾN CHUYÊN NGHIỆP
Khóa học Lập trình Visual Foxpro 9 - Dành cho nhà quản lý và kế toán
Khóa học hướng dẫn về Moodle chuyên nghiệp và hay Xây dựng hệ thống đào tạo trực tuyến chuyên nghiệp tốt nhất hiện nay.
Khóa học AutoIt dành cho dân IT và Marketing chuyên nghiệp
Khoá học Word từ cơ bản tới nâng cao, học nhanh, hiểu sâu
Khóa học hướng dẫn sử dụng Powerpoint từ đơn giản đến phức tạp HIỆU QUẢ Khóa học Thiết kế, quản lý dữ liệu dự án chuyên nghiệp cho doanh nghiệp bằng Bizagi Khóa học Phân tích dữ liệu sử dụng Power Query trong Excel
Khóa học Lập trình WEB bằng PHP từ cơ bản đến nâng cao
Khóa học "Thiết kế bài giảng điện tử", Video, hoạt hình kiếm tiền Youtube bằng phần mềm Camtasia Studio Khóa học HƯỚNG DẪN THIẾT KẾ VIDEO CLIP CHO DÂN MARKETING CHUYÊN NGHIỆP HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
GOOGLE SPREADSHEETS phê không tưởng Hãy tham gia khóa học để biết mọi thứ
Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
Để thành thạo Wordpress bạn hãy tham gia khóa học Khóa học sử dụng Edmodo để dạy và học hiện đại để thành công ==***== Bảo hiểm nhân thọ - Bảo vệ người trụ cột Cập nhật công nghệ từ Youtube tại link: congnghe.hocviendaotao.com
Tham gia nhóm Facebook
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com
Bảo mật và tấn công Website - Hacker mũ trắng
KHÓA HỌC LẬP TRÌNH PYTHON TỪ CƠ BẢN ĐẾN CHUYÊN NGHIỆP

Khóa học AutoIt dành cho dân IT và Marketing chuyên nghiệp
Khoá học Word từ cơ bản tới nâng cao, học nhanh, hiểu sâu
Khóa học hướng dẫn sử dụng Powerpoint từ đơn giản đến phức tạp HIỆU QUẢ
Khóa học Thiết kế, quản lý dữ liệu dự án chuyên nghiệp cho doanh nghiệp bằng Bizagi
Khóa học Phân tích dữ liệu sử dụng Power Query trong Excel
Khóa học Lập trình WEB bằng PHP từ cơ bản đến nâng cao
kiếm tiền Youtube bằng phần mềm Camtasia Studio
Khóa học HƯỚNG DẪN THIẾT KẾ VIDEO CLIP CHO DÂN MARKETING CHUYÊN NGHIỆP
HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA
Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
GOOGLE SPREADSHEETS phê không tưởng
Hãy tham gia khóa học để biết mọi thứ
Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
Để thành thạo Wordpress bạn hãy tham gia khóa học
Khóa học sử dụng Edmodo để dạy và học hiện đại để thành công
==***==
Bảo hiểm nhân thọ - Bảo vệ người trụ cột
Tham gia nhóm Facebook
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com
Nguồn: Tinh Tế
Topics: Công nghệ mới


































