#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * alpha = "abcdefghijklmnopqrstuvwxyz";
char * bigAl = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char * digit = "0123456789";
int main (void)
{
char y = 0;
char syms[128] = {0};
int found = 0;
char passw[5] = { 0 };
char guess[5] = { 0 };
printf("Will you use characters (y/n): "); if (y
=='y') strcat(syms
,alpha
);
printf("Will you use big characters (y/n): "); if (y
=='y') strcat(syms
,bigAl
);
printf("Will you use numbers (y/n): "); if (y
=='y') strcat(syms
,digit
);
{
printf("Enter your password: "); for(char * c = syms; !found && *c; ++c)
{
guess[0] = *c;
guess[1] = 0;
{
found = 1; break;
}
for(char * c1 = syms; !found && *c1; ++c1)
{
guess[1] = *c1;
guess[2] = 0;
{
found = 1; break;
}
for(char * c2 = syms; !found && *c2; ++c2)
{
guess[2] = *c2;
guess[3] = 0;
{
found = 1; break;
}
for(char * c3 = syms; !found && *c3; ++c3)
{
guess[3] = *c3;
{
found = 1; break;
}
}
}
}
}
}
printf("Password = [%s]\n",(found
) ? guess
: "NOT FOUND");
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKY2hhciAqIGFscGhhID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKY2hhciAqIGJpZ0FsID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjsKY2hhciAqIGRpZ2l0ID0gIjAxMjM0NTY3ODkiOwoKaW50IG1haW4gKHZvaWQpCnsKICAgIGNoYXIgeSA9IDA7CiAgICBjaGFyIHN5bXNbMTI4XSA9IHswfTsKICAgIGludCBmb3VuZCA9IDA7CiAgICBjaGFyIHBhc3N3WzVdID0geyAwIH07CiAgICBjaGFyIGd1ZXNzWzVdID0geyAwIH07CgogICAgcHJpbnRmKCJXaWxsIHlvdSB1c2UgY2hhcmFjdGVycyAoeS9uKTogIik7CiAgICBzY2FuZigiICVjIiwgJnkpOwogICAgaWYgKHk9PSd5Jykgc3RyY2F0KHN5bXMsYWxwaGEpOwoKICAgIHByaW50ZigiV2lsbCB5b3UgdXNlIGJpZyBjaGFyYWN0ZXJzICh5L24pOiAiKTsKICAgIHNjYW5mKCIgJWMiLCAmeSk7CiAgICBpZiAoeT09J3knKSBzdHJjYXQoc3ltcyxiaWdBbCk7CgogICAgcHJpbnRmKCJXaWxsIHlvdSB1c2UgbnVtYmVycyAoeS9uKTogIik7CiAgICBzY2FuZigiICVjIiwgJnkpOwogICAgaWYgKHk9PSd5Jykgc3RyY2F0KHN5bXMsZGlnaXQpOwoKICAgIGlmIChzdHJsZW4oc3ltcykpCiAgICB7CiAgICAgICAgcHJpbnRmKCJFbnRlciB5b3VyIHBhc3N3b3JkOiAiKTsKICAgICAgICBzY2FuZigiJTRzIiwgcGFzc3cpOwogICAgICAgIGZvcihjaGFyICogYyA9IHN5bXM7ICFmb3VuZCAmJiAqYzsgKytjKQogICAgICAgIHsKICAgICAgICAgICAgZ3Vlc3NbMF0gPSAqYzsKICAgICAgICAgICAgZ3Vlc3NbMV0gPSAwOwogICAgICAgICAgICBpZiAoc3RyY21wKGd1ZXNzLHBhc3N3KSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3VuZCA9IDE7IGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcihjaGFyICogYzEgPSBzeW1zOyAhZm91bmQgJiYgKmMxOyArK2MxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBndWVzc1sxXSA9ICpjMTsKICAgICAgICAgICAgICAgIGd1ZXNzWzJdID0gMDsKICAgICAgICAgICAgICAgIGlmIChzdHJjbXAoZ3Vlc3MscGFzc3cpID09IDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSAxOyBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvcihjaGFyICogYzIgPSBzeW1zOyAhZm91bmQgJiYgKmMyOyArK2MyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGd1ZXNzWzJdID0gKmMyOwogICAgICAgICAgICAgICAgICAgIGd1ZXNzWzNdID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wKGd1ZXNzLHBhc3N3KSA9PSAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSAxOyBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZm9yKGNoYXIgKiBjMyA9IHN5bXM7ICFmb3VuZCAmJiAqYzM7ICsrYzMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBndWVzc1szXSA9ICpjMzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcChndWVzcyxwYXNzdykgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSAxOyBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiUGFzc3dvcmQgPSBbJXNdXG4iLChmb3VuZCkgPyBndWVzcyA6ICJOT1QgRk9VTkQiKTsKICAgIHByaW50ZigiZG9uZS5cbiIpOwoKICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Cn0KCg==