Advertisement
Guest User

Untitled

a guest
Apr 28th, 2010
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <conio.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6.  
  7. using namespace std;
  8.  
  9. #define PWD_LENGTH 12
  10. #define CAPS 2
  11. #define NUMS 2
  12. #define SPEC 2
  13.  
  14. int main(int argc, char* argv[]) {
  15.     char *consonants = "bdghklmnprstz";
  16.     char *vocals = "aeiou";
  17.     string pwd = "";
  18.     int conslength = strlen(consonants);
  19.     int vocslength = strlen(vocals);
  20.     char vocal;
  21.     char consonant;
  22.    
  23.     srand((unsigned)time(NULL));
  24.    
  25.     while (getch() != 27) {
  26.         pwd = "";
  27.        
  28.         for (int i = 0; i < PWD_LENGTH / 2; i++) {
  29.             consonant = consonants[rand() % conslength];
  30.             pwd += consonant;
  31.             vocal = vocals[rand() % vocslength];
  32.             pwd += vocal;
  33.         }
  34.        
  35.         cout << "step1: " << pwd << endl;
  36.        
  37.         for (int i = 0; i < CAPS; i++) {
  38.             int n = rand() % pwd.length();
  39.             if (pwd[n] >= 0x61)
  40.                 pwd[n] -= 0x20;
  41.             else
  42.                 i--;
  43.         }
  44.        
  45.         cout << "step2: " << pwd << endl;
  46.        
  47.         for (int i = 0; i < NUMS; i++) {
  48.             for (int j = 0; j < pwd.length(); j++) {
  49.                 switch (pwd[j]) {
  50.                     case 'i' :
  51.                         pwd[j] = '1';
  52.                         j = pwd.length();
  53.                         break;
  54.                     case 'z' :
  55.                         pwd[j] = '7';
  56.                         j = pwd.length();
  57.                         break;
  58.                     case 's' :
  59.                         pwd[j] = '2';
  60.                         j = pwd.length();
  61.                         break;
  62.                     case 'b' :
  63.                         pwd[j] = '6';
  64.                         j = pwd.length();
  65.                         break;
  66.                     case 'o' :
  67.                         pwd[j] = '0';
  68.                         j = pwd.length();
  69.                         break;
  70.                     case 'g' :
  71.                         pwd[j] = '9';
  72.                         j = pwd.length();
  73.                         break;
  74.                 }
  75.             }
  76.         }
  77.        
  78.         cout << "step3: " << pwd << endl;
  79.        
  80.         for (int i = 0; i < SPEC; i++) {
  81.             for (int j = 0; j < pwd.length(); j++) {
  82.                 switch (pwd[j]) {
  83.                     case 'i' :
  84.                         pwd[j] = '!';
  85.                         j = pwd.length();
  86.                         break;
  87.                     case 's' :
  88.                         pwd[j] = '$';
  89.                         j = pwd.length();
  90.                         break;
  91.                     case 'a' :
  92.                         pwd[j] = '@';
  93.                         j = pwd.length();
  94.                         break;
  95.                     case 'l' :
  96.                         pwd[j] = '|';
  97.                         j = pwd.length();
  98.                         break;
  99.                 }
  100.             }
  101.         }
  102.        
  103.         cout << "step4: " << pwd << endl << endl;
  104.     }
  105.    
  106.     return 1;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement