S{o}cial
Gizmeo.eu RSS-Feed c1 auf LinkedIn c1 auf DeviantArt c1 bei YouTube Gizmeo.eu als Android-App
Komm{e}ntare
{A}rchiv
Lef{t}overs
GET FIREFOX!
GET THUNDERBIRD!
www . cipha . net

www . cipha . net
Please use an AMD CPU!
cell processor rox, fuck INTEL
KDE - the Ueber-Desktop-Environment!
STOP FACEBOOK!
msn user die!
aol sucks cock!
FUCK MYSPACE!
explicit content
NEIN zu Softwarepatenten
save the net! net-neutrality is important!
Aktion UBERWACH!
Cred{i}ts
Created, Made & Maintained by AETHYX.EU

wo kommen kreditkartennummern her?

Warum haben Kreditkartennummern (meistens) 16 Zahlen? Wie werden diese Zahlen generiert? Und warum kann nicht jeder Depp eine Reihenfolge an Zahlen zu einer Kreditkartennummer zusammenführen?*

Es gibt eine Website, die das alles anschaulich erklärt:

http://datagenetics.com/blog/july42013/index.html [via]

So geben z.B. die ersten vier Zahlen wieder, zu welcher Gesellschaft diese Karte gehört:

Visa: Präfix 4-
Mastercard: Präfix 51-, 52-, 53-, 54-, 55-
American Express: Präfix 34-, 37-

Da Kreditkartenfirmen bereits eingeplant haben, dass Menschen zu dämlich sein könnten die Nummer korrekt irgendwo anzugeben, hat man nach 15 Zahlen eine Prüfnummer eingefügt. Diese Zahl wurde mathematisch aus den vorangegangenen berechnet: Die Formel wurde 1954 von Hans Peter Luhn bei IBM entwickelt. Es gibt heute kein Patent mehr dafür, diese Formel ist Allgemeingut und läuft unter ISO/IEC 7812-1.

Solche Prüfnummern findet man übrigens auch in Barcodes, ISBNs von Büchern, etc. vor. Den Luhn-Algorithmus kann man aus Spaß auf dieser Website auch anwenden. Er ist jedoch nicht besonders stark (zumindest heute nicht mehr), es gibt weitaus bessere wie z.B. den Verhoeff-Algorithmus (1969) oder den von Damm (2004).

Mehr braucht man dazu eigentlich nicht wissen. Am Ende des Artikels werden noch ein paar Anwendungsbeispiele wie RAIDs genannt, die aber zur eigentlichen Thematik nichts mehr beitragen.

Wer will, der kann den Luhn-Algorithmus auch in einer Programmiersprache seiner Wahl einbauen. Eigentlich sollten sich so eigene Kreditkartennummern generieren lassen. Die entsprechende Funktion in C sieht beispielsweise so aus:

#include // für atoi
#include // für strlen

bool checkLuhn(const char *pPurported)
{
int nSum = 0;
int nDigits = strlen(pPurported);
int nParity = (nDigits-1) % 2;
char cDigit[2] = "\0\0"; // atoi erwartet einen null-terminierten String
for (int i = nDigits; i > 0 ; i--)
{
cDigit[0] = pPurported[i-1];
int nDigit = atoi(cDigit);

if (nParity == i % 2)
nDigit = nDigit * 2;

nSum += nDigit/10;
nSum += nDigit%10;
}
return 0 == nSum % 10;
} [via]

So, haben wir wieder was gelernt! Nett.

*Im Internet gibt es zahlreiche Rechner um sich Fake-Kreditkartennummern generieren zu lassen. Die sind dann für diverse Webseiten durchaus benutzbar, sofern das z.B. eine Voraussetzung ist einen Dienst nutzen zu können. Allerdings sollten diese Nummern nicht bereits benutzt worden sein. Da es sich zudem um eine rechtliche Grauzone mit diesen Generatoren handelt werden die hier nicht verlinkt. Und noch ein Hinweis: Online-generiertes Gedöns kann immer abgefangen werden. Es ist daher sicherer sich sein Programm selber(!) zu bauen.

1 Star - nope!2 Stars - meh!3 Stars - good!4 Stars - excellent!5 Stars - supercalifragilisticexpialidocious! (Rate me? // Beitrag bewerten?)
Loading...
Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

Kommentieren