2013-06-30 3 views
0

Я пытаюсь сделать программу грубой силы на 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; 
    } 
} 

Я пробовал много, но я не могу заставить его работать, спасибо заранее.

+0

, пожалуйста, улучшите свой вопрос, показывая, где вы doscovered «не работает». Это хорошая идея, чтобы сначала ограничить себя максимальными 2-буквенными паролями, которые вы можете просто следовать; Создайте тестовый набор, который ищет заранее заданные пароли, такие как «4», «a2» ... и вы можете записать трассировку того, что пытается опробовать –

+1

Управление консолью не является частью стандарта C++, поэтому вам придется полагаться на вещи специфические для вашей среды (Windows, Linux, Mac и т. д.) или потенциально даже для используемой консоли. – Bishop

+0

Ncurses on Linux сделает это. http://linux.die.net/man/3/ncurses – grasshopper

ответ

0

Консольная программа не имеет возможностей для этого. Если вы работаете на машине под Windows и не нуждаетесь в кросс-платформенной переносимости, вы можете уйти с использованием нестандартной conio.h функции библиотеки getch() для имитации cin при замене символов. Но я честно рекомендую против такого подхода. Если вам действительно нужна цензура пароля, я предлагаю вам либо превратить программу в приложение GUI, либо попросить пользователя ввести пароль в файл, а затем указать имя файла (чтобы он не отображался на экране как напрямую) ,

+0

Итак, как мне сделать это в приложении GUI, например, как он будет выглядеть и работать? (Я совершенно новый с C++) –

+1

этот ответ совершенно неверен –

+0

«Консольная программа не имеет возможностей для этого» - А? Вы пытаетесь предположить, что машина Тьюринга работает только с цветным дисплеем VGA? Или что? –

 Смежные вопросы

  • Нет связанных вопросов^_^