Feedback

C# - LUHN Prüfung von Kreditkartennummern

Veröffentlicht von am 4/25/2008
(2 Bewertungen)
Für Anwendungen die z.B. die Eingabe einer Kreditkartennummer benötigen. Die LUHN Prüfung erstellt eine Prüfsumme die durch 10 Teilbar sein muss.

Zusätzlich sollte noch geprüft werden:
- Gültig Bis (>= DateTime.Now.Date)
- KPN (3 Zahlen)
- Länge der Kartennummer (evtl. kann bei fehlen von Zahlen die Prüfnummer trotzdem stimmen)
/// <summary>
/// Kreditkarten LUHN Berechnung
/// </summary>
/// <param name="KKNumber">Kreditkartennummer</param>
/// <returns>True wenn Kartennummer in Ordnung</returns>
public static bool CheckLUHN(string KKNumber)
{
	int intWert = 0, intX = 0;

	KKNumber = MakeGoodKKNumber(KKNumber);

	if (KKNumber.Length > 0)
	{
		for (int intPos = KKNumber.Length - 1; intPos >= 0; intPos--)
		{
			intX = Convert.ToInt32(KKNumber.Substring(intPos, 1));
			intWert += ((KKNumber.Length - 1 - intPos) % 2) == 0 ? intX : Quersumme(Convert.ToString(intX * 2));
		}

		return ((intWert % 10) == 0);
	}
	else
		return false;
}

// SORRY HATTE ICH ZUERST VERGESSEN :-(
/// <summary>
/// Berechnet Quersumme anhand eines Zahlenstrings
/// </summary>
/// <param name="Wert">Zahlenstrings z.B. "12345"</param>
/// <returns>Quersumme z.B. 15</returns>
public static int Quersumme(string Wert)
{
    int intReturn = 0;

    while (Wert != "")
    {
        intReturn += Convert.ToInt32(Wert.Substring(0, 1));
        Wert = Wert.Substring(1);
    }
    return intReturn;
}


1 Kommentare zum Snippet

Sven Schneider schrieb am 1/31/2012:
MakeGoodKKNumber(KKNumber);?!
 

Logge dich ein, um hier zu kommentieren!