1585540
Thuật toán Luhn
https://vi.wikipedia.org/wiki?curid=1585540
Title: Thuật toán Luhn
Ví dụ: số IMEI là 350880-10-195032-A, trong đó A là số kiểm tra cần phải tính để tổng 3+5*+0+8*+8+0*+1+0*+1+9*+5+0*+3+2*+A chia hết cho 10
Bước 1: 4, 0, 18, 0, 0, 16, 10
Bước 2: (4 + 0 + (1 + 8) + 0 + 0 + (1 + 6) + (1 + 0)) + (3 + 0 + 8 + 1 + 1 + 5 + 3) = 42 
Bước 3: A = 50 – 42 = 8 
Như vậy số IMEI hợp lệ phải là 350880-10-195032-8.
Điểm mạnh và điểm yếu.
Thuật toán Luhn sẽ phát hiện bất kỳ lỗi một chữ số nào, cũng như gần như tất cả các chuyển vị của các chữ số liền kề.Tuy nhiên, nó sẽ không phát hiện chuyển vị của dãy hai chữ số "09" thành "90" (hoặc ngược lại). Nó sẽ phát hiện 7 trong số 10 lỗi số kép có thể xảy ra (nó sẽ không phát hiện ra "22" ↔ "55", "33" ↔ "66" hay "44" ↔ "77").
Các thuật toán kiểm tra số phức tạp khác (giống như thuật toán Verhoeff và thuật toán Damm) có thể phát hiện thêm các lỗi sao chép. Thuật toán Luhn mod N là một phần mở rộng hỗ trợ các chuỗi không có số.
Bởi vì thuật toán hoạt động trên các chữ số theo cách từ phải sang trái và các chữ số 0 chỉ ảnh hưởng đến kết quả nếu chúng gây ra dịch chuyển vị trí, việc đệm số 0 bắt đầu một chuỗi số không ảnh hưởng đến phép tính. Do đó, các hệ thống đệm đến một số chữ số cụ thể (ví dụ bằng cách chuyển đổi 1234 thành 0001234) có thể thực hiện xác thực Luhn trước hoặc sau khi đệm và đạt được kết quả tương tự.
Chuẩn bị một số có độ dài từ 0 đến vị trí lẻ khiến nó xử lý số từ trái sang phải thay vì phải sang trái, nhân đôi các chữ số ở vị trí lẻ.