Sử dụng giải thuật Luhn để sinh số CD. Giải thuật Luhn là cách thức kết hợp các chữ số của một mã số thẻ tín dụng ( các chữ số xen kẽ nhau) và kiểm tra tổng cuối cùng có chia hết cho 10 hay không. Nếu đúng thì thẻ này hợp lệ.
Khi kiểm tra PIN nhập vào của chủ thẻ thì hệ thống Switch sẽ kiểm tra đồng thời số CD. Căn cứ vào thông tin thẻ, hệ thống tính số CD nếu so khớp thì thẻ hơp lệ.
Giải thuật này thực hiện như sau:
a) Từ các số thẻ cho trước ta làm từ trái qua phải
b) Các số nằm ở dòng chẵn thì nhân với 1 ( để bình thường) c) Các số nằm ở dòng lẻ thì nhân với 2.
d) Kiểm tra kết quả tính được, nếu số nào lớn hơn 9 thì trừ đi 9. e) Cộng các kết quả tính được lại với nhau ta được một số.
f) Thực hiện phép tính lấy số đơn vị của số đó cộng với số cần tính để thành 10, khi đó giải phép toán ta được số CD.
BIN- BANK Cardholder Account CHECK
IDENTIFICATION NUMBER Number DIGIT
…
PAN- PRIMARY ACCOUNT NUMBER
Bảng 3.1: Cách sinh số CD
Y=6 => Số thẻ hợp lệ cho dãy số trên : PAN =6688991234567896
2/. Quy trình kiểm tra số CD
Hoàn toàn tƣơng tự nhƣ trên, Sau khi cộng đƣợc các chữ số lại gồm cả số CD ta đƣợc tổng, nếu tổng này chia hết cho 10 thì số thẻ đó hợp lệ
BIN CD PAN 6 6 8 8 9 9 1 2 3 4 5 6 7 8 9 Y Nhân 2 (cột lẻ) x2 x2 x2 x2 x2 x2 x2 x 2 Y Kết quả 12 6 16 8 19 9 2 2 6 4 10 6 14 8 1 8 Y Trừ 9 nếu >9 -9 -9 -9 -9 -9 -9 Y Kết quả 3 6 7 8 9 9 2 2 6 4 1 6 5 8 8 Y Cộng các chữ số lại 3+6+7+8+9+9+2+2+6+4+1+6+5+8+8+Y= 84+Y
Giải bài toán: Lấy số hàng đơn vị của 84 cộng với Y có tổng bằng 10. 4+Y=10 => Y =6
Bảng 3.2 Cách kiểm tra số CD