Kreditkartenvalidierung

Auch die Kreditakartennummernvalidierung gehört mit in den Themenbereich der Datenqualität. Kreditkartennummern haben einen speziellen Aufbau, normalerweise bestehen sie aus 16 Zahlen (American Express 15 Zahlen), wobei die ersten 6-Ziffern den sogenannten BIN-Code bilden und die letzten Ziffern die eigentliche Kontonummer inkl. einer Prüfziffer.

Der BIN-Code (Bank Identification Number) wird dazu verwendet den Herausgeber einer Kreditkarte eindeutig zu identifizieren und kann mit der IBAN oder dem SWIFT-Code verglichen werden.

Benny Austin hat bei Codeplex das Projekt Credit Card Number Validator 05 (CCNV05) veröffentlicht, ein SSIS Datenfluss Task der Kreditkartennummer validieren soll. Der Task verfügt aktuell über keinen eigenen Editor für die Konfiguration.

Der Task Überprüft eine Kreditkartennummer auf gültige Zeichen (0123456789), eine Länge zwischen 13 und 16 und dem Luhn Modulus 10 Algorithmus. Der Ausgabedatenstrom wird automatisch um eine zusätzliche Spalte erweitert, die einen booleschen Wert für die Validierung enthält.

image

Ein Problem ergibt sich aus meiner Sicht jedoch bei der Berechnung der Prüfziffer. Nach meinem bisherigen Kenntnisstand, und auch nach Informationen der Seite Prüfziffernberechnung, wird die Prüfziffer je nach Kreditinstitut mal mit und mal ohne dem Präfix des Kreditkarteninstituts berechnet; der Task bietet an dieser Stelle aber keine Möglichkeit den Kreditkartenherausgeber vorher zu bestimmen, über eine spezielle Spalte zuzuordnen oder zu berechnen.

Eine weiterer zu verinnerlichender Punkt ist, das diese Komponente eine reine Validierung durchführt. Der Luhn Algorithmus ist nicht zu kryptografischen Zwecken entwickelt worden, sondern dient lediglich zur Überprüfung einer richtigen Übertragung von Daten. 

Die Komponente sollte also dazu eingesetzt werden, eine erste Überprüfung von Kreditkartennummern durchzuführen, eine richtige Überprüfung sollte nur (online) in Zusammenarbeit mit einem Institut vollzogen werden.