Sayfayı Yazdır | Pencereyi Kapat

Kredi Kartı Checksum kontrolü

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliği / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarınızı Her Türlü Saldırıya Karşı Korumak İçin Yapmanız Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=8982
Tarih: 27-04-2024 Saat 11:36


Konu: Kredi Kartı Checksum kontrolü
Mesajı Yazan: megabros
Konu: Kredi Kartı Checksum kontrolü
Mesaj Tarihi: 29-03-2011 Saat 12:34

Kredi kartı numaraları göründükleri kadar rastgele numaralar değildirler. İlk 4 rakam kartı çıkaran bankayı belirler. Son rakam checksum’dır ve hatalar buna göre kontrol edilebilir. Minimum olarak kredi kartı kabul eden yazılımlar bu checksum’ı kontrol edebilir. Tabik ki bu kredi kartı numarasını online bir kimlik tanılama servisi ile kontrol etmekle karşılaştırılamaz.

Checksum algoritması:

Karttaki her rakamı 'weight'i ile çarp. Weight 1,2,1,2 olarak değişir. Rakamlarının sayısı çift olan bir kart için seri 2 ile, aksi durumda 1 ile başlar.


Weight işlemi uygulanan sayı 9 dan büyükse 9 çıkar.
Weight işlemi uygulanmış rakamları topla ve base-10 modulus’ünü hesapla.

Sonuç 0 a eşit olmalı.

İşte bir kredi kartı numarasının geçerliliğini kontrol edecek bir perl script’i. Geçerli bir numara için '1' tersi için '0' 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;
}

Saygılar.


-------------
WHİTE HAT
BEYAZ ŞAPKA (BİLGİ NEFERİ)



Sayfayı Yazdır | Pencereyi Kapat