Kredi kartı olanlar daha iyi bilirler. Kredi kartı üzerindeki kart numarası öyle rast gele yazılmış bir numara değildir. Mesela kart numarasındaki ilk 4 rakam kartı çıkaran bankayı belirler. Son rakam ise checksum numarasıdır ve hatalar bu numara ile kontrol edilebilir. Minumum olarak kredi kartı kullanımını kabul eden yazılımlar bu checksumu kontrol edebilir. Tabi bu kontrol olayı online bir tanımla servisi ile kontrol edilmez.
Kısaca bu Checksum algoritmasından bahsetmek gerekirse;
Öncelikle karttaki her rakamı “weight” ile çarpıyoruz. “weight” 1,2,1,2 olarak değişir. Kredi kartındaki sayıların toplamı çift sayı ise 2 ile, değilse seri 1 ile başlar. “weight” işlemi ile uygulanan sayı 9 dan büyükse sonuç 9 çıkar. Sonuç olarak weight işlemi yapılan sayıları topluyoruz ve base-10 modülünü hesaplıyoruz. İşlemin doğru olması için sonuç 0 (sıfır) olmalı.
Konuyu daha iyi anlatmak için size bunun ile ilgili bir perl scripti örneği veriyorum. Sonuç olarak geçerli bir işlem için sonuç 1 (bir) tersi için 0 (sıfır) dönecektir.
Sub check_cc {
My $num = shift;
My $sum = 0;
My @digits = $num~/(\d)/g;
My @weights = (1,2) x (@digits/2 + 1);
Shift @weights unless @digits/2 +1);
Foreach (@digits) {
My $weighted = $_ * shift @weights;
$weighted -= 9 if $weighted > 9;
$sum += $weighted;
}
return ($sum % 10) == 0;
}
Ayhan ESEN
Bu yazı Lincoln D. Stein`in Web Security isimli kitabından alınmıştır.
Bu makaleyi bilgisayarınıza indirmek için buraya tıklayın
Bu yazı toplamda 684, bugün ise 1 kez görüntülenmiş
Etiketler: checksum, kredi kartı

Siz De Cevap Yazın