Password Generator - C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
/*
Conditions:
-length = 8 characters.
-can include numbers, characters and (& # _ @).
-always start from a lower case letter.
-have atleast 2 lower case, 2 upper case & 1 number & a special character.
-no space is allowed.
*/
int random_number(int low,int up){
    int x= rand() % (up - low + 1+ low;
    return x;
}
char random_lwrchar(void){
    char lwrletters[]="abcdefghijklmnopqrstuvwxyz";
    return lwrletters[random_number(0,25)];
}
char random_uprchar(void){
    char uprletters[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return uprletters[random_number(0,25)];
}
char random_char(void){
    char uprletters[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char lwrletters[]="abcdefghijklmnopqrstuvwxyz";
    int i = random_number(1,2);
    if(i == 1){
        return lwrletters[random_number(0,25)];
    }
    else if(i == 2){
        return uprletters[random_number(0,25)];
    }
}
char random_schar(){
    char specialletters[]="#@_&";
    return specialletters[random_number(0,3)];
}  

void generate_password(){
    int i = random_number(1,2);
    printf("%c",random_char());             //1st character
    if(i == 1){
        printf("%c",random_uprchar());      //2nd character
    }
    else if(i == 2){
        printf("%c",random_lwrchar());
    }
    int j = random_number(1,2);
    if(j == 1 && i == 2 || j == 2 && i == 2){       
        printf("%c",random_uprchar());      //3rd character
    }
    else if(j == 1 && i == 1 || j == 2 && i == 1){
        printf("%c",random_lwrchar());
    }
    printf("%c",random_lwrchar());          //4th character
    printf("%c",random_uprchar());          //5th character
    printf("%c",random_schar());            //6th character
    printf("%d",random_number(2,5));        //7th character
    printf("%d\n",random_number(2,5));      //8th character
}
int main(){
    srand(time(NULL));
    //Driver code
    printf("Generated random password = ");
    generate_password();
    return 0;
}
//  program_by : Tejas
Outputs

Comments

  1. NOTE : srand() is called inside main() just to make a small time gap between the function calls otherwise same random number will be generated.

    ReplyDelete

Post a Comment

Popular Posts