生成密码本的算法_密码如何生成
const int arraySize = '9' - '0' + 1 + 'Z' - 'A' + 1 + 'z' - 'a' + 1;
char* array = new char[arraySize];
for (int i = 0; i < 10; ++i)
{
array[i] = '0' + i;
}
for (int i = 0; i <26; ++i)
{
array[i+10] = 'A' + i;
}
for (int i = 0; i < 26; ++i)
{
array[i + 36] = 'a' + i;
}
//62进制
vector<vector<char> > pwdVec;
for (int j = 0; j < arraySize; ++j)
{
char ch = array[j];
vector<char> vec;
vec.push_back(ch);
pwdVec.push_back(vec);
printPwd(vec);
}
for (int pwwdLength = 1; pwwdLength <= 10; ++pwwdLength)
{
//构建密码
for (int j = 0; j < arraySize; ++j)
{
char ch = array[j];
for (int k = 0; k < pwdVec.size(); ++k)
{
if (pwdVec[k].size() == pwwdLength - 1)
{
vector<char> vec = pwdVec[k];
vec.push_back(ch);
pwdVec.push_back(vec);
printPwd(vec);
}
}
}
//新的长度构建完
char szFileName[512] = {0};
sprintf(szFileName, "E:/svg/%d.txt", pwwdLength);
FILE* fp = fopen(szFileName, "w+");
if (fp)
{
for (int i = 0; i < pwdVec.size(); ++i)
{
vector<char> vec = pwdVec[i];
if (vec.size() == pwwdLength)
{
for (int k = 0; k < vec.size(); ++k)
{
fputc(vec[k], fp);
}
fputc('\n', fp);
}
}
fclose(fp);
}
}
FILE* fp = fopen("E:/svg/密码本.txt","w+");
if (fp)
{
for (int i = 0; i < pwdVec.size(); ++i)
{
vector<char> vec = pwdVec[i];
if (vec.size() >= 8)
{
for (int k = 0; k < vec.size(); ++k)
{
fputc(vec[k],fp);
}
fputc('\n',fp);
}
}
fclose(fp);
}
相关文章
- 459元国产新科技尔英B760M主板酷睿I7-12700处理器降压幅度100%+
- 魔兽世界怀旧服:狂暴战整合WA,卡英勇WA
- 「图钉神机」放假了?那就配台电脑打游戏吧
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
- abee AS Enclosure W1机箱评测:复刻经典,简约又好用
- NZXT KRAKEN X53 RGB一体式水冷散热器评测:内外俱备的寒冰武士
- 8G显存是原罪,还是光追来背锅?RTX5060金属大师对比评测
- 订单爆满工人回流!韩国造船巨头产能利用率同比大增
- 技嘉AORUS WATERFORCE X 360水冷评测:兼顾冷与静,呈现力与美
- 精品博文ARM中打印函数print 的几种实现方法