#include #include #include void Generisi(int duzina,char* set); //za -s, priprema sve i poziva Sifra void SGenerisi(int snaga); //za -r, priprema sve i poziva Sifra int SlucajanBroj(int min,int max); //random broj izmedju min i max ukljucujuci i min i max void Sifra (int duz,char* slova); //Generisi i SGenerisi pozivaju, pravi i ispisuje sifru char sifra[80]; int main(int argc, char **argv) { if(argc < 2 || argc >4) { printf("Pomoc: rpsx -h\n"); exit(0); } else if(argc == 2 && strcmp(argv[1],"-h")==0) { printf("\n\t- [ Uputstvo ]\n"); printf("\nrpsx -[opcija {h,r,s}] [vrednost {i,n}] [opcija {t}]\n"); printf("\t-h Pomoc\n"); printf("\t-r Slucajna sifra | potrebna vrednost [i]\n"); printf("\t-s Podesavanja | potrebne vrednosti [n] i [t]\n"); printf("\n* Vrednost [i] slozenost sifre i={1,2,3,4}\n"); printf("\t1 - veoma slaba sifra, 5-8 karaktera | mala slova\n"); printf("\t2 - slaba sifra, 7-11 karaktera | slova i brojevi\n"); printf("\t3 - jaka sifra, 10-18 karaktera | slova, brojevi i spec. znakovi\n"); printf("\t4 - veoma jaka sifra, 20-50 karaktera | slova, brojevi i spec. znakovi\n"); printf("\n* Vrednost [n] duzina sifre n={3-80}\n"); printf("\n* Opcija [t] set karaktera za sifru t={sve,a1,1!,a!}\n"); printf("\tsve - svi karakteri\n"); printf("\ta1 - slova i brojevi\n"); printf("\t1! - brojevi i spec. znaci\n"); printf("\ta! - slov i spec. znaci\n"); printf("\n\t- [ Primeri ]\n"); printf("\n rspx -r 2"); printf("\n rspx -s 15 -sve"); printf("\n rspx -s 20 -a!\n"); } else if(argc == 3 && strcmp(argv[1],"-r")==0) { int snaga = atoi(argv[2]); //atoi konvertuje string u int if(snaga > 0 && snaga < 5) { SGenerisi(snaga); } else printf("\nVrednost i mora biti 1,2,3 ili 4\n"); } else if(argc == 4 && strcmp(argv[1],"-s")==0) { int duzina = atoi(argv[2]); if(duzina > 2 && duzina < 81) { Generisi(duzina,argv[3]); } else printf("\nVrednost n mora biti od 3 do 80\n"); } else { printf("Pomoc: rpsx -h\n"); exit(0); } return 0; } void Generisi(int duzina,char* set) { char *karakSet; if(strcmp(set,"-sve")==0) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,"; Sifra(duzina,karakSet); } else if(strcmp(set,"-a1")==0) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789"; Sifra(duzina,karakSet); } else if(strcmp(set,"-1!")==0) { karakSet = "0123465789!@#$%^&*()_+{}:>?<~;[].,"; Sifra(duzina,karakSet); } else if(strcmp(set,"-a!")==0) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+{}:>?<~;[].,"; Sifra(duzina,karakSet); } else printf("\nOpcija t moze biti: -sve, -a1, -1!, -a!\n"); } void SGenerisi(int snaga) { int duz; char *karakSet; if(snaga == 1) { karakSet = "abcdefghijklmnopqrstuvwxyz"; duz = SlucajanBroj(5,8); Sifra(duz,karakSet); } else if(snaga == 2) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789"; duz = SlucajanBroj(7,11); Sifra(duz,karakSet); } else if(snaga == 3) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,"; duz = SlucajanBroj(10,18); Sifra(duz,karakSet); } else if(snaga == 4) { karakSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465789!@#$%^&*()_+{}:>?<~;[].,"; duz = SlucajanBroj(20,50); Sifra(duz,karakSet); } else printf("\nOvo ne sme da se pojavi -r\n"); } int SlucajanBroj(int min,int max) { srand( time(0) ); return min + rand()%(max-min+1); } void Sifra (int duz,char* slova) { int i; srand( time(0) ); for(i=0; i