Luhn Algoritması ile Kredi Kartı Numarası Kontrolü
Algoritma nasıl çalışıyor?
Kredi Kartı Numarası (Account Number) 7992739871 olsun, bir sayı atlanarak çift numaralılar 2 ile çarpılıyor. Çıkan sayı 9'dan küçükse aynen yazılıyor, eğer büyük ise çarpım sonucu elde edilen sayının haneleri toplanıyor. Örneğin 3 x 6 = 18 değeri 9'dan büyük olduğu için hane toplamı 1+8 = 9 alınıyor. Sonra en son satırda ise haneler toplanıyor, 7+9+9+4+7+6+9+7+7+2 = 67 elde ediyor, Bu toplam değeri Mod 10'a göre 0 ise kredi kartı geçerlidir, burada Mod 10'a göre 7 olduğundan son rakam 3 olabilir. Böylece toplam 70 edecek, mod 10'a göre kalan 0 olacaktır.

Örneğimizde 7992739871X burada X değeri 3 olacaktır. Birçok yöntem ile son doğrulama hanesi olan 3 hesaplanabilir, diğer yöntemleri kaynaklar kısmından inceleyebilirsiniz.
ListBox nesnesi ekleyip ID değerine Lbox veriyoruz.
TextBox nesnesi ekleyip ID değerine txtKredi ismini veriyoruz.
Button nesnesi ekleyip ID değerine btnKontrol ismini veriyoruz.

Kredi Kartı Numarası (Account Number) 7992739871 olsun, bir sayı atlanarak çift numaralılar 2 ile çarpılıyor. Çıkan sayı 9'dan küçükse aynen yazılıyor, eğer büyük ise çarpım sonucu elde edilen sayının haneleri toplanıyor. Örneğin 3 x 6 = 18 değeri 9'dan büyük olduğu için hane toplamı 1+8 = 9 alınıyor. Sonra en son satırda ise haneler toplanıyor, 7+9+9+4+7+6+9+7+7+2 = 67 elde ediyor, Bu toplam değeri Mod 10'a göre 0 ise kredi kartı geçerlidir, burada Mod 10'a göre 7 olduğundan son rakam 3 olabilir. Böylece toplam 70 edecek, mod 10'a göre kalan 0 olacaktır.

Örneğimizde 7992739871X burada X değeri 3 olacaktır. Birçok yöntem ile son doğrulama hanesi olan 3 hesaplanabilir, diğer yöntemleri kaynaklar kısmından inceleyebilirsiniz.
ListBox nesnesi ekleyip ID değerine Lbox veriyoruz.
TextBox nesnesi ekleyip ID değerine txtKredi ismini veriyoruz.
Button nesnesi ekleyip ID değerine btnKontrol ismini veriyoruz.

protected void btnKontrol_Click(object sender, EventArgs e)
{
string kredi = txtKredi.Text;
int genelToplam = 0;
for (int i=0; i<kredi.Length; i++)
{
int carpim = 1;
int toplam =0;
if (i % 2 == 1)
{
// LBox.Items.Add(kredi[i].ToString());
carpim = int.Parse(kredi[i].ToString()) * 2;
LBox.Items.Add(carpim.ToString());
if (carpim > 9)
{
string carpimStr = carpim.ToString();
toplam = int.Parse(carpimStr[0].ToString()) +
int.Parse(carpimStr[1].ToString());
genelToplam += toplam;
} //if
else genelToplam += carpim;
}//if i%2
else {
genelToplam += int.Parse(kredi[i].ToString());
}
}//for
LBox.Items.Add("Genel Toplam " + genelToplam);
int dogrulama = genelToplam % 10;
int sonRakam = 10 - dogrulama;
LBox.Items.Add("Sonrakam "+sonRakam);
LBox.Items.Add("Doğrulama "+dogrulama);
}

Mutlu kodlamalar,
Oğuzhan TAŞ
Kasım, 2016

Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: Excel hücrelerinde yıldız koyarak b...
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?