#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