BalanceFormcreative / Getty Images
Là gì thuật toán Luhn?
Thuật toán Luhn—còn được gọi là “Thuật toán Modulus 10”—là một công thức được sử dụng để xác định xem số nhận dạng do người dùng cung cấp có chính xác hay không. Công thức này được sử dụng rộng rãi trong việc xác thực số thẻ tín dụng, cũng như các dãy số khác như Số An sinh Xã hội của chính phủ (SSN).
Ngày nay, Thuật toán Luhn là một thành phần cần thiết trong hệ thống thanh toán điện tử và được sử dụng bởi tất cả các thẻ tín dụng lớn.
Những điểm chính cần nhớ
- Thuật toán Luhn là một công thức toán học được phát triển vào cuối những năm 1950.
- Nó được sử dụng rộng rãi để xác thực tính chính xác của các số nhận dạng.
- Trong tài chính, nó đã giúp tăng cường xử lý thanh toán điện tử bằng cách nhanh chóng xác định các số thẻ tín dụng nhập sai.
Cách thức hoạt động của Thuật toán Luhn
Thuật toán Luhn được phát triển bởi một nhà khoa học máy tính người Đức tên là Hans Peter Luhn vào năm 1954 khi làm việc như là một nhà nghiên cứu tại IBM. Các hoạt động chính xác của thuật toán dựa trên toán học modular, một kỹ thuật toán học được phát triển bởi Carl Friedrich Gauss vào đầu thế kỷ 19. Mặc dù hoạt động chi tiết của nó khá phức tạp, nó nổi tiếng với khả năng cho phép máy tính nhanh chóng đánh giá xem các số thẻ tín dụng mà khách hàng cung cấp có chính xác hay không.
Cách mà thuật toán Luhn hoạt động là thông qua việc áp dụng một loạt các tính toán vào số thẻ tín dụng được cung cấp, tổng hợp kết quả của những tính toán đó, và kiểm tra xem số kết quả có khớp với kết quả mong đợi hay không. Nếu có, thì số thẻ tín dụng được coi là hợp lệ. Nếu không, thuật toán sẽ từ chối số thẻ tín dụng, chỉ ra rằng người dùng đã mắc sai lầm khi nhập số.
Từ góc nhìn của khách hàng, chúng ta sử dụng Thuật toán Luhn mọi lúc, mà không hề nhận ra. Khi đặt hàng trực tuyến hoặc sử dụng terminal điểm bán hàng (POS) của thương nhân, hệ thống máy tính có thể nhanh chóng phát hiện khi chúng ta đã mắc sai lầm khi nhập thông tin. Điều này bởi vì Thuật toán Luhn đã được tích hợp vào chương trình của những hệ thống đó. Nếu thiếu nó, chúng ta sẽ cần phải đợi cho đến khi toàn bộ đơn đặt hàng được gửi đi mới nhận ra liệu giao dịch có được chấp nhận hay không. Thuật toán Luhn, nói cách khác, giúp chúng ta nhanh chóng nhận biết lỗi của người dùng và từ đó tăng tốc độ giao dịch.
Ví dụ Thực tế của Thuật toán Luhn
Một trong những khái niệm trung tâm trong Thuật toán Luhn là việc sử dụng các “chữ số kiểm tra” gọi là “check digits.” Các chữ số này bao gồm các số được chèn vào chuỗi số lớn để giúp xác minh, hoặc “kiểm tra,” xem toàn bộ số liệu có chính xác hay không.
Đối với thẻ tín dụng, chữ số kiểm tra bao gồm một chữ số duy nhất được in ở cuối số thẻ tín dụng. Thay vì được chọn cụ thể bởi công ty thẻ tín dụng, chữ số kiểm tra được tự động xác định bởi Thuật toán Luhn, dựa trên các số đứng trước trong chuỗi. Khi người dùng nhập số thẻ tín dụng của họ để hoàn tất giao dịch, phần mềm xử lý thanh toán có thể sử dụng Thuật toán Luhn để phát hiện xem số đã chỉ định có chính xác hay không, dựa vào phần chữ số kiểm tra của nó.
Ngày nay, Thuật toán Luhn được tích hợp vào các ngôn ngữ lập trình phổ biến và thư viện mã nguồn, từ đó làm cho việc bao gồm việc xác minh số nhận dạng dựa trên Luhn vào các ứng dụng phần mềm mới khá dễ dàng.