Java android, отображать информацию во время выполнения кода? - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь смоделировать атаку грубой силой (чтобы объяснить, как она работает).Я хочу показать процесс взлома пароля «abc».Это требует, чтобы я показал, какой пароль пытается взломать пароль «abc» в этот момент (поэтому начинайте с «a», затем «b», затем «c», пока не достигнете «abc».

MyВопрос в том, как я могу получить пароль, который пытаются в этот момент отобразить на экране, пока код выполняет код?

Было бы проще сделать видео, показывающее этот процесс?

Спасибо

Джейми

edit Вот код, который я написал с комментариями, поясняющими каждую часть. Надеюсь, это поможет мне объяснить проблему.

спасибо за ответы до сих пор

    // the simulation

    Button btnSim = (Button) findViewById(R.id.btnSim);
    btnSim.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            TextView currentSimPword = (TextView) findViewById(R.id.currentSimPword);

            int i = 0;//i would be replaced by the string it is trying e.g. a then b then c
                      //until it reaches abc 

            while (i < 100) {//this would loop until i reaches abc

                //this would show what the brute force attack is attempting against the real password
                currentSimPword.setText("comparing password " + i + " against the real password 'abc'");
                //at this point i want it to be displayed on screen (and at every time it reaches here)

                //here i would need a way to pause it long enough for the user to see what is being tried

                //this increases the password tried by one each time in the loop
                i = i + 1;
            }
        }

    });

Ответы [ 4 ]

0 голосов
/ 23 февраля 2012

Пожалуйста, запустите ваш цикл в фоновом потоке и используйте Handler для обновления пользовательского интерфейса.Ниже приведены некоторые ссылки, которые помогут вам понять обработчик.

Пример потока, обработчика и AsyncTask

Еще один пост, посвященный обработчику

0 голосов
/ 23 февраля 2012

Думаю, было бы неплохо показать свиток всех попыток по мере их прохождения.Это довольно легко реализовать.См. Ответ на этот вопрос.

0 голосов
/ 23 февраля 2012

Просто используйте TextView, и каждый раз, когда вы пытаетесь ввести новый «пароль», обновляйте его текст до пароля, который пробует в данный момент. Если процесс очень быстр, чтобы наблюдать, вы можете добавить пароли один за другим с отметкой времени.

TextView mLabel = findViewById(R.id.yourtextview);

// do some sort of loop that would simulate your brute force attack

mLabel.append(currentPassword + "\n");

// end loop that simulates brute force attack
0 голосов
/ 23 февраля 2012

Вы можете запустить свой метод bruteforce в AsyncTask и просто обновить пользовательский интерфейс с вашей текущей попыткой.

При каждой попытке вы вызываете publishProgress со своей текущей строкой пароля и обновляете пользовательский интерфейс в onProgressUpdate.

Однако я мог неправильно понять вопрос ^^

Кстати, если это для презентации, видео не является плохой идеей, потому что ваш инструмент всегда может иметь какую-то ошибку, которая отображается именно во время вашей презентации.

...