?? passwordgeneration.cpp
字號(hào):
// PasswordGeneration.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "PasswordGeneration.h"
#include "string.h"
#include "malloc.h"
//////////////////////////////////////////////////////////////////////
// CPasswordGeneration Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPasswordGeneration::CPasswordGeneration()
{
cCapital = new char[26];
cDig = new char[10];
cDigCapital = new char[36];
cDigLowercase = new char[36];
cDigLowercaseCapital = new char[62];
cLowercase = new char[26];
cLowercaseCapital = new char[52];
}
CPasswordGeneration::~CPasswordGeneration()
{
delete []cCapital;
delete []cDig;
delete []cDigCapital;
delete []cDigLowercase;
delete []cDigLowercaseCapital;
delete []cLowercase;
delete []cLowercaseCapital;
}
//數(shù)字產(chǎn)生密碼
void CPasswordGeneration::DigPasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值0-9
for (i=48; i<=57; i++)
{
cDig[i-48] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cDig[Password[iNum]] != '1')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 10)
{
Password[i+1]++;
Password[i] = Password[i] % 10;
j %= 10;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cDig[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[100];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//小寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::LowercasePasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值a-z
for (i=97; i<=122; i++)
{
cLowercase[i-97] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cLowercase[Password[iNum]] != 'b')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 26)
{
Password[i+1]++;
Password[i] = Password[i] % 26;
j %= 26;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cLowercase[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
// Sleep(1000);
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//大寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::CapitalPasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值A(chǔ)-Z
for (i=65; i<=90; i++)
{
cCapital[i-65] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cCapital[Password[iNum]] != 'B')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 26)
{
Password[i+1]++;
Password[i] = Password[i] % 26;
j %= 26;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cCapital[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//數(shù)字小寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::DigLowercasePasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值0-9
for (i=48; i<=57; i++)
{
cDigLowercase[i-48] = i;
}
//賦值a-z
for (i=97; i<=122; i++)
{
cDigLowercase[i-97+10] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cDigLowercase[Password[iNum]] != '1')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 36)
{
Password[i+1]++;
Password[i] = Password[i] % 36;
j %= 36;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cDigLowercase[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//數(shù)字小寫(xiě)字母大寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::DigLowercaseCapitalPasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值0-9
for (i=48; i<=57; i++)
{
cDigLowercaseCapital[i-48] = i;
}
//賦值a-z
for (i=97; i<=122; i++)
{
cDigLowercaseCapital[i-97+10] = i;
}
//賦值A(chǔ)-Z
for (i=65; i<=90; i++)
{
cDigLowercaseCapital[i-65+36] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cDigLowercaseCapital[Password[iNum]] != '1')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 62)
{
Password[i+1]++;
Password[i] = Password[i] % 62;
j %= 62;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cDigLowercaseCapital[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//數(shù)字大寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::DigCapitalPasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值0-9
for (i=48; i<=57; i++)
{
cDigCapital[i-48] = i;
}
//賦值A(chǔ)-Z
for (i=65; i<=90; i++)
{
cDigCapital[i-65+10] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cDigCapital[Password[iNum]] != '1')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 36)
{
Password[i+1]++;
Password[i] = Password[i] % 36;
j %= 36;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cDigCapital[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
//小寫(xiě)字母大寫(xiě)字母產(chǎn)生密碼
void CPasswordGeneration::LowercaseCapitalPasswordGen(char cFilepath[],int iNum,int iFileLength)
{
int i;
//賦值a-z
for (i=97; i<=122; i++)
{
cLowercaseCapital[i-97] = i;
}
//賦值A(chǔ)-Z
for (i=65; i<=90; i++)
{
cLowercaseCapital[i-65+26] = i;
}
int *Password = new int[iNum+1];
char *Pass = new char[iNum+1];
for (i=0; i<=iNum; i++)
{
Password[i] = 0;
}
FILE *fp;
int j = 0;
iCount = 0;//用來(lái)統(tǒng)計(jì)寫(xiě)入文件的數(shù)字的個(gè)數(shù)
//產(chǎn)生數(shù)字組
while (cLowercaseCapital[Password[iNum]] != 'b')
{
Password[0] = j;
for (i=0; i<=iNum; i++)
{
//檢測(cè)各個(gè)位數(shù)是否到終點(diǎn)
if (Password[i] == 52)
{
Password[i+1]++;
Password[i] = Password[i] % 52;
j %= 52;
}
}
//輸出(若干個(gè)數(shù)一組,文件名為文件中的第一個(gè)數(shù))
for (i=iNum-1; i>=0; i--)
{
Pass[iNum-1-i] = cLowercaseCapital[Password[i]];
}
Pass[iNum] = '\0';
//打開(kāi)文件
if (iCount == 0)
{
//產(chǎn)生文件名,用存儲(chǔ)的第一個(gè)數(shù)字組作為文件名
char filename[50];
sprintf(filename,"%s.dic\0",Pass);
char file[80];
strcpy(file,cFilepath);
strcat(file,filename);
if ((fp=fopen(file,"w")) == NULL)
{
printf("Can not open file for input!\n");
exit(1);
}
}
iCount++;
fprintf(fp,"%s\n",Pass);
j++;
if (iCount == iFileLength-1)
{
iCount = 0;
fclose(fp);
}
}
if (iCount != iFileLength-1)
{
fclose(fp);
}
delete []Password;
delete []Pass;
}
int CPasswordGeneration::GetCount()
{
return iCount;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -