Friday, August 3, 2012

MOD 10

LUHN Algorithm in C# (Validate Credit Card)

 public static bool IsCreditCardValid(string cardNumber)
        {
            const string allowed = "0123456789";
            int i;
            StringBuilder cleanNumber = new StringBuilder();
            for (i = 0; i < cardNumber.Length; i++)
            {
                if (allowed.IndexOf(cardNumber.Substring(i, 1)) >= 0)
                    cleanNumber.Append(cardNumber.Substring(i, 1));
            }
            if (cleanNumber.Length < 13 || cleanNumber.Length > 16)
                return false;
            for (i = cleanNumber.Length + 1; i <= 16; i++)
                cleanNumber.Insert(0, "0");
            int multiplier, digit, sum, total = 0;
            string number = cleanNumber.ToString();
            for (i = 1; i <= 16; i++)
            {
                int n = i - 1;
                multiplier = 1 + (i % 2);
                digit = int.Parse(number.Substring(n, 1));
                sum = digit * multiplier;
                if (sum > 9)
                    sum -= 9;
                total += sum;
            }
            return (total % 10 == 0);
        }
http://www.notesbit.com/index.php/web-mysql/web-scripts/luhn-algorithm-in-c/

No comments:

Post a Comment