Guest
Public paste!

notme

By: a guest | May 24th, 2008 | Syntax: C++ | Size: 0.96 KB | Hits: 80 | Expires: Never
Copy text to clipboard
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. char generateChecksum(string s) {
  7.     int checks = 0;
  8.     for (int i=0; i <s.length(); i++) {
  9.         int nr = (s[i] - 0x30);
  10.         if (i % 3 == 0) checks += (7 * nr);
  11.         if (i % 3 == 1) checks += (3 * nr);
  12.         if (i % 3 == 2) checks += nr;
  13.     }
  14.     char ret = (checks % 10) + 0x30;
  15.     return ret;
  16. }
  17.  
  18. int main()
  19. {
  20.     string base     = "7881738905";
  21.     string birth    = "";
  22.     string expire   = "";
  23.  
  24.     cout    << "Geburts (yymmdd):";
  25.     cin     >> birth;
  26.     cout    << endl;
  27.  
  28.     cout    << "Ablauf (yymmdd):";
  29.     cin     >> expire;
  30.     cout    << endl;
  31.  
  32.     string subfinal = base + birth + generateChecksum(birth) + expire + generateChecksum(expire);
  33.     string final    = base + "D << " + birth + generateChecksum(birth) + " < " + expire + generateChecksum(expire) + " <<<<<<< " + generateChecksum(subfinal);
  34.  
  35.     cout << "Personalausweisnummer:\n" << final;
  36. }