密码生成器

类别:编程语言 点击:0 评论:0 推荐:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void very_easy_password(int);
void very_easy2_password(int);
void easy_password(int);
void medium_password(int);
void hard_password(int);
void hard2_password(int);
void very_hard_password(int);
void extreme_password(int);

int main(void)
{
    printf("PWgen.exe, password generator, Copyright (C) 2004 Scorpius");
    printf("\n\nPWgen.exe is free software; you can redistribute it and/or modify");
    printf("\nit under the terms of the GNU General Public License as published by");
    printf("\nthe Free Software Foundation; either version 2 of the License.");
    printf("\n\nPWgen.exe is distributed in the hope that it will be useful,");
    printf("\nbut WITHOUT ANY WARRANTY; without even the implied warranty of");
    printf("\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the");
    printf("\nGNU General Public License for more details.");
    printf("\n\nYou should have received a copy of the GNU General Public License");
    printf("\nalong with this program; if not, write to the Free Software");
    printf("\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n\n");
   
    char again='y';
    while(again == 'y' || again=='Y')
    {
        int password_length=0;
        int choice=0;
        printf("\n1: (a-z)\t\t\t\t\tvery easy password");
        printf("\n2: (A-Z)\t\t\t\t\tvery easy password");
        printf("\n3: (a-z,A-Z)\t\t\t\t\teasy password");
        printf("\n4: (a-z,0-9)\t\t\t\t\tmedium password");
        printf("\n5: (A-Z,a-z,0-9)\t\t\t\thard password");
        printf("\n6: (a-z,0-9, \\ ] [ ^ _ )\t\t\thard password");
        printf("\n7: ( ! \" # $ % ' ( * ) + , - . /  ,a-z,0-9)\tvery hard password");
        printf("\n8: full keyboard characters (except space), almost impossible to crack\n\n");
        while (choice<1 || choice>8)
        {
                printf("Enter the characterset you wish to use: ");
                scanf("%d",&choice);
        }   
        while((password_length<1)||(password_length>256))
        {
                printf("Enter the length of the password (max 256): ");
                scanf("%d",&password_length);
                if (password_length<8)
                {
                    printf("\n\nChoosen password is only %d characters long!",password_length);
                    printf("\nRemember, a password is as strong as its length!");
                    printf("\nThe above gradations only apply with a minimal password length of 8.\n");
                }       
                   
        }
        printf("\nYour password is: ");   
        switch(choice)
        {
                case 1:
                        very_easy_password(password_length);
                        break;
                case 2:
                        very_easy2_password(password_length);
                        break;
                case 3:
                        easy_password(password_length);
                        break;
                case 4:
                        medium_password(password_length);
                        break;
                case 5:
                        hard_password(password_length);
                        break;
                case 6:
                        hard2_password(password_length);
                        break;
                case 7:
                        very_hard_password(password_length);
                        break;
                case 8:
                        extreme_password(password_length);
                        break;
               default:
                        break;
        }
        printf("\nWant to generate another password (y/n)?");
        again=getch();
        printf("\n\n");
    }
    printf("Thank you for using my program, for questions/comments contact me at");
    printf("\[email protected]");
    printf("\nPress any key to exit");
    char any=getch();
    return 0;   
}



/*(a-z) very easy password*/

void very_easy_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/* (A-Z) also very easy password */
void very_easy2_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=65 && cha<=90))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/*(A-Z,a-z), easy password*/

void easy_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=65 && cha<=90) || (cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/*(a-z,0-9) medium password*/

void medium_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=48 && cha<=57) ||(cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}


/*(A-Z,a-z,0-9) hard password*/

void hard_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=48 && cha<=57) || (cha>=65 && cha<=90) || (cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/*(a-z,0-9, \ ] [ ^ _ ) hard password*/

void hard2_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=48 && cha<=57) || (cha>=91 && cha<=95) || (cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/*( ! " # $ % ' ( * ) + , - . /  ,a-z,0-9) very hard password*/

void very_hard_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=48 && cha<=57) || (cha>=65 && cha<=90) || (cha>=97 && cha<=122))
        {
           printf("%c",cha);
           length--;
        }
    }
}

/*full keyboard characters (except space), almost impossible to crack */

void extreme_password(length)
{
    srand(time(NULL));
    while (length>0)
    {
        int cha;
        cha=rand()%128;
        if((cha>=33 && cha<=126))
        {
           printf("%c",cha);
           length--;
        }
    }
}

本文地址:http://com.8s8s.com/it/it28646.htm