notme
By: a guest | May 24th, 2008 | Syntax:
C++ | Size: 0.96 KB | Hits: 80 | Expires: Never
#include <iostream>
#include <string>
using namespace std;
char generateChecksum(string s) {
int checks = 0;
for (int i=0; i <s.length(); i++) {
int nr = (s[i] - 0x30);
if (i % 3 == 0) checks += (7 * nr);
if (i % 3 == 1) checks += (3 * nr);
if (i % 3 == 2) checks += nr;
}
char ret = (checks % 10) + 0x30;
return ret;
}
int main()
{
string base = "7881738905";
string birth = "";
string expire = "";
cout << "Geburts (yymmdd):";
cin >> birth;
cout << endl;
cout << "Ablauf (yymmdd):";
cin >> expire;
cout << endl;
string subfinal = base + birth + generateChecksum(birth) + expire + generateChecksum(expire);
string final = base + "D << " + birth + generateChecksum(birth) + " < " + expire + generateChecksum(expire) + " <<<<<<< " + generateChecksum(subfinal);
cout << "Personalausweisnummer:\n" << final;
}