Я пытаюсь сделать программу грубой силы на C++ для школьного проекта, но я хочу, чтобы введенный вами пароль был цензурирован, поэтому вместо пароля будет * * PS Это консольное приложениеОтображение * s на консоли при чтении пароля
Это мой C++ код:
#include <iostream>
#include <string>
using namespace std;
char chars[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','W','R','S','T','U','V','W','X','Y','Z'};
string t;
void checkPassword(string password);
void recurse(int width, int position, string baseString);
int main() {
cout << "Enter a Password: " << endl;
cin >> t;
int maxChars = 13;
for(int i=0;i<maxChars+1;i++) {
cout << "checking passwords width [" << i << "]..." << endl;
recurse(i,0,"");
}
return 0;
}
void recurse(int width, int position, string baseString) {
for(int i=0;i<70;i++) {
if (position < width-1) {
recurse(width, position + 1, baseString+chars[i]);
}
checkPassword(baseString+chars[i]);
}
}
void checkPassword(string password) {
if (password==t) {
cout << "Match Found: " << password << "" << endl;
return;
}
}
Я пробовал много, но я не могу заставить его работать, спасибо заранее.
, пожалуйста, улучшите свой вопрос, показывая, где вы doscovered «не работает». Это хорошая идея, чтобы сначала ограничить себя максимальными 2-буквенными паролями, которые вы можете просто следовать; Создайте тестовый набор, который ищет заранее заданные пароли, такие как «4», «a2» ... и вы можете записать трассировку того, что пытается опробовать –
Управление консолью не является частью стандарта C++, поэтому вам придется полагаться на вещи специфические для вашей среды (Windows, Linux, Mac и т. д.) или потенциально даже для используемой консоли. – Bishop
Ncurses on Linux сделает это. http://linux.die.net/man/3/ncurses – grasshopper