stoneman icon

rpsx.exe

stoneman | PRO | 03/01/12 03:12:46 PM UTC | 0 ⭐ | 356 👁️ | Never ⏰ | []
C |

3.85 KB

|

None

|

0 👍

/

0 👎

#include<stdio.h>
#include<string.h>
#include<time.h>
 
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<duz; i++)
    {
        sifra[i] = slova[rand()%strlen(slova)];
    }
 
    printf("\nSifra: %s\n",sifra);
}

Comments