• 08-12-2024, 19:25:54
    #1
    Luhn algoritması (Modulus 10 veya mod 10 algoritması olarak da bilinir), kredi kartı numaralarını veya diğer sayı dizilerini doğrulamak için kullanılan bir kontrol algoritmasıdır. Algoritma, bir dizi sayının geçerli bir formatta olup olmadığını hızlı bir şekilde belirlemek için tasarlanmıştır.

    Luhn Algoritması Nasıl Çalışır?

    1. Sayıyı Tersten Al: Doğrulanacak sayının tüm basamaklarını sağdan sola sıralayın.
    2. Çift ve Tek Basamaklar: Tersten alınmış sayının her bir çift pozisyonundaki basamağı ikiyle çarpın. Eğer sonuç 9’dan büyükse, iki basamaklı sonucu bir basamaklı hale getirmek için 9 çıkarın.
    3. Toplama İşlemi: Çift pozisyondaki (işlenmiş) basamakları ve tek pozisyondaki (değişmeden bırakılmış) basamakları toplayın.
    4. Mod 10 Kontrolü: Toplam, 10’a tam bölünebiliyorsa (mod 10 = 0), sayı geçerlidir.
    VB.NET örnek kod
    Function IsValidLuhn(number As String) As Boolean
        Dim sum As Integer = 0
        Dim alternate As Boolean = False
    
        For i As Integer = number.Length - 1 To 0 Step -1
            Dim digit As Integer = Integer.Parse(number(i).ToString())
            If alternate Then
                digit *= 2
                If digit > 9 Then
                    digit -= 9
                End If
            End If
            sum += digit
            alternate = Not alternate
        Next
    
        Return sum Mod 10 = 0
    End Function

    C# Örnek Kod :
    using System;
    
    class Program
    {
        static bool IsValidLuhn(string number)
        {
            int sum = 0;
            bool alternate = false;
    
            for (int i = number.Length - 1; i >= 0; i--)
            {
                int digit = int.Parse(number[i].ToString());
                if (alternate)
                {
                    digit *= 2;
                    if (digit > 9)
                    {
                        digit -= 9;
                    }
                }
                sum += digit;
                alternate = !alternate;
            }
    
            return sum % 10 == 0;
        }
    
        static void Main(string[] args)
        {
            Console.WriteLine(IsValidLuhn("4532015112830366")); // Örnek Kart Numarası
        }
    }


    PHP Örnek Kod :
    <?php
    function isValidLuhn($number) {
        $sum = 0;
        $alternate = false;
    
        for ($i = strlen($number) - 1; $i >= 0; $i--) {
            $digit = intval($number[$i]);
            if ($alternate) {
                $digit *= 2;
                if ($digit > 9) {
                    $digit -= 9;
                }
            }
            $sum += $digit;
            $alternate = !$alternate;
        }
    
        return $sum % 10 === 0;
    }
    
    // Örnek Kullanım
    echo isValidLuhn("4532015112830366") ? "Geçerli" : "Geçersiz";
    ?>
  • 08-12-2024, 19:32:42
    #2
    Paylaşım için teşekkürler