Advertisement
stoneman

rpsx.exe

Mar 1st, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.85 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<time.h>
  4.  
  5. void Generisi(int duzina,char* set); //za -s, priprema sve i poziva Sifra
  6. void SGenerisi(int snaga); //za -r, priprema sve i poziva Sifra
  7. int SlucajanBroj(int min,int max); //random broj izmedju min i max ukljucujuci i min i max
  8. void Sifra (int duz,char* slova); //Generisi i SGenerisi pozivaju, pravi i ispisuje sifru
  9.  
  10. char sifra[80];
  11.  
  12. int main(int argc, char  **argv)
  13. {
  14.     if(argc < 2 || argc >4)
  15.     {
  16.         printf("Pomoc: rpsx -h\n");
  17.         exit(0);
  18.     }
  19.     else if(argc == 2 && strcmp(argv[1],"-h")==0)
  20.     {
  21.         printf("\n\t- [ Uputstvo ]\n");
  22.         printf("\nrpsx -[opcija {h,r,s}] [vrednost {i,n}] [opcija {t}]\n");
  23.         printf("\t-h Pomoc\n");
  24.         printf("\t-r Slucajna sifra | potrebna vrednost [i]\n");
  25.         printf("\t-s Podesavanja | potrebne vrednosti [n] i [t]\n");
  26.  
  27.         printf("\n* Vrednost [i] slozenost sifre i={1,2,3,4}\n");
  28.         printf("\t1 - veoma slaba sifra,  5-8 karaktera | mala slova\n");
  29.         printf("\t2 - slaba sifra, 7-11 karaktera | slova i brojevi\n");
  30.         printf("\t3 - jaka sifra, 10-18 karaktera | slova, brojevi i spec. znakovi\n");
  31.         printf("\t4 - veoma jaka sifra, 20-50 karaktera | slova, brojevi i spec. znakovi\n");
  32.        
  33.         printf("\n* Vrednost [n] duzina sifre n={3-80}\n");
  34.         printf("\n* Opcija [t] set karaktera za sifru t={sve,a1,1!,a!}\n");
  35.         printf("\tsve - svi karakteri\n");
  36.         printf("\ta1 - slova i brojevi\n");
  37.         printf("\t1! - brojevi i spec. znaci\n");
  38.         printf("\ta! - slov i spec. znaci\n");
  39.        
  40.         printf("\n\t- [ Primeri ]\n");
  41.         printf("\n  rspx -r 2");
  42.         printf("\n  rspx -s 15 -sve");
  43.         printf("\n  rspx -s 20 -a!\n");
  44.     }
  45.     else if(argc == 3 && strcmp(argv[1],"-r")==0)
  46.     {
  47.         int snaga = atoi(argv[2]); //atoi konvertuje string u int
  48.         if(snaga > 0 && snaga < 5)
  49.         {
  50.             SGenerisi(snaga);
  51.         }
  52.         else
  53.             printf("\nVrednost i mora biti 1,2,3 ili 4\n");
  54.     }
  55.     else if(argc == 4 && strcmp(argv[1],"-s")==0)
  56.     {
  57.         int duzina = atoi(argv[2]);
  58.         if(duzina > 2 && duzina < 81)
  59.         {
  60.             Generisi(duzina,argv[3]);
  61.         }
  62.         else
  63.             printf("\nVrednost n mora biti od 3 do 80\n");
  64.     }
  65.     else
  66.     {
  67.         printf("Pomoc: rpsx -h\n");
  68.         exit(0);
  69.     }
  70.     return 0;
  71. }
  72.  
  73. void Generisi(int duzina,char* set)
  74. {
  75.     char *karakSet;
  76.     if(strcmp(set,"-sve")==0)
  77.     {
  78.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,";
  79.         Sifra(duzina,karakSet);
  80.     }
  81.     else if(strcmp(set,"-a1")==0)
  82.     {
  83.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789";
  84.         Sifra(duzina,karakSet);
  85.  
  86.     }
  87.     else if(strcmp(set,"-1!")==0)
  88.     {
  89.         karakSet = "0123465789!@#$%^&*()_+{}:>?<~;[].,";
  90.         Sifra(duzina,karakSet);
  91.     }
  92.     else if(strcmp(set,"-a!")==0)
  93.     {
  94.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+{}:>?<~;[].,";
  95.         Sifra(duzina,karakSet);
  96.     }
  97.     else
  98.         printf("\nOpcija t moze biti: -sve, -a1, -1!, -a!\n");
  99. }
  100.  
  101. void SGenerisi(int snaga)
  102. {
  103.     int duz;
  104.     char *karakSet;
  105.  
  106.     if(snaga == 1)
  107.     {
  108.         karakSet = "abcdefghijklmnopqrstuvwxyz";
  109.         duz = SlucajanBroj(5,8);
  110.         Sifra(duz,karakSet);
  111.     }
  112.     else if(snaga == 2)
  113.     {
  114.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789";
  115.         duz = SlucajanBroj(7,11);
  116.         Sifra(duz,karakSet);
  117.     }
  118.     else if(snaga == 3)
  119.     {
  120.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,";
  121.         duz = SlucajanBroj(10,18);
  122.         Sifra(duz,karakSet);
  123.     }
  124.     else if(snaga == 4)
  125.     {
  126.         karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,";
  127.         duz = SlucajanBroj(20,50);
  128.         Sifra(duz,karakSet);
  129.     }
  130.     else
  131.         printf("\nOvo ne sme da se pojavi -r\n");
  132. }
  133.  
  134. int SlucajanBroj(int min,int max)
  135. {  
  136.     srand( time(0) );
  137.     return min + rand()%(max-min+1);
  138. }
  139.  
  140. void Sifra (int duz,char* slova)
  141. {
  142.     int i;
  143.     srand( time(0) );
  144.     for(i=0; i<duz; i++)
  145.     {
  146.         sifra[i] = slova[rand()%strlen(slova)];
  147.     }
  148.  
  149.     printf("\nSifra: %s\n",sifra);
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement