Programmierung mit Hash

Louis12

Aktives Mitglied
Hallo

Leider komme ich hier nicht sehr weit ich, wollte fragen ob ihr mir helfen könnt.

Ich würde mich sehr freuen, da ich wirklich nicht weiß wie ich weitervorgehen soll





Implementieren Sie hier die Klasse AppendOrHashThread (siehe Vorlage: ha03/src/main/java/AppendOrHashThread.java).

Betrachten Sie dazu auch die Klassen Hasher (siehe Vorlage: ha03/src/main/java/Hasher.java) und Data (siehe Vorlage: ha03/src/main/java/Data.java), sowie die Klasse Main (siehe Vorlage: ha03/src/main/Main.java).

Implementieren Sie mittels dieser Klasse einen Thread, der eine ID (Typ String) als Attribut hat. Außerdem hat die Klasse ein Attribut nextThread vom Typ AppendOrHashThread. Der Thread soll seine ID an die statische Referenz word (Data.java) ranhängen oder aber word mittels Hasher.hash() hashen. Wurde word gehashed soll ebenfalls die statische Referenz currentIterations inkrementiert werden. Threads des Typs AppendOrHashThread sollen in einer festen Reihenfolge ausgeführt werden: zuerst zwei Threads die ihre ID an word ranhängen (append) gefolgt von einem Thread der word hashed. Nachdem das word gehashed wurde soll eine neue Iteration beginnen.


Ein Wort wird in einer Iteration jeweils um die ID von t1 und t2 erweitert, indem die IDs beider Threads mit dem Wort konkateniert werden. Dabei ist streng zu beachten, dass zuerst die ID von t1 und dann die ID von t2 an das Wort gehangen wird. Bevor eine neue Iteration beginnt, wird das Wort mit den IDs der Threads in einem eigenen Thread t3 gehashed (nutzen Sie dazu Hasher.hash() aus der Vorlage).

Beispiel:

Sei word="", t1="A" und t2="B"

Dann passiert folgendes in Iteration 1:

t1 wird ausgeführt -> word="A"

t2 wird ausgeführt -> word="A" + "B"

t3 wird ausgeführt -> word=Hasher.hash(word)

In Iteration 2 wird dann wie folgt weiter gemacht:

t1 wird ausgeführt -> word=Hasher.hash(word)+"A"

t2 wird ausgeführt -> word=Hasher.hash(word)+"A" + "B" // * word wie in t3 aus 1. Iteration

t3 wird ausgeführt -> word=Hasher.word(Hasher.hash(word)+"A" + "B") // * word wie in t3 aus 1. Iteration

usw ...

Dieser Ablauf soll numOfIterations-mal (siehe Data.java) ausgeführt werden.


Beispiel:
Test Result
Main.test("A", "B"); fa2551a2e3d3924217fa85ab99413e54
Main.test(null, null); c50f3cfb68b1f71cefc732b2bca5e4a0









Klasse Data
Code:
public class Data {


    public static int numOfIterations = 5000;
    public static int currentIterations = 0;
    public static String word = "";

    public static boolean verify(String t1, String t2, String hash) {
        // TODO: implement me
        return false;
    }


}

Code:
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Hasher {


    public static String hash(String word) {
        String result = null;
        try {

            MessageDigest md = MessageDigest.getInstance("MD5");
            BigInteger n = new BigInteger(1, md.digest(word.getBytes()));
            result = String.format("%1$32s", n.toString(16)).replace(" ", "0");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return result;
    }

}


Code:
public class Main {

    public static void main(String[] args) {

        // Quiz #3 Aufgabe 3
        // t1 -> AppendOrHashThread("A") & t2 -> AppendOrHashThread("B") x 5000 Iterationen
        // t1 -> AppendOrHashThread(null) & t2 -> AppendOrHashThread(null) x 5000 Iterationen

        // Quiz #3 Aufgabe 4
        System.out.println(Data.verify("A", "B", "c95ac9f9c7ffe17093466ef2a6bce3aa"));

        System.out.println(Data.verify(null, null, "7fcb4080ccece5443aa2a49ed29f4421"));
    }

}







Mein Code

Code:
public class AppendOrHashThread {


    public String id;

    public AppendOrHashThread nextThread;


    public AppendOrHashThread() {
    }


    Thread t1 = new Thread(new MyThread(), "T1");
    Thread t2 = new Thread(new MyThread(), "T2");
    Thread t3 = new Thread(new MyThread(), "T3");


    class MyThread implements Runnable {
        @Override
        public void run() {
            Thread t = Thread.currentThread();
            System.out.println("Thread started: " + t.getName());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Thread ended: " + t.getName());

        }


    }

}
 

JavaJens

Mitglied
:cool:
Willst Du mit dem fertigen Programm dann Rainbow Tables (MD5=WPA2 Verschlüsselung) erstellen?
Wenn ja ….. da gibt es doch bereits Anwendungen für (Pyrit, Cain&Abel, usw.) die zumindest teilweise schneller sein dürften als Java (und auf die Geschwindigkeit kommt es doch eigentlich an).

Was Java angeht .... sorry(!) dann bin ich viel zu sehr Anfänger, dass ich Dir helfen könnte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
F Automat-Programmierung Java Basics - Anfänger-Themen 30
N Lambdas, Methodenref, fkt Programmierung ? Java Basics - Anfänger-Themen 10
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
A Frage zur programmierung Java Basics - Anfänger-Themen 12
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
H Java Programmierung Java Basics - Anfänger-Themen 3
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
D Objektorientierte Programmierung Java Basics - Anfänger-Themen 13
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
Q Objektorientierte Programmierung Java Basics - Anfänger-Themen 17
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Collections Aufgaben Java-Programmierung Überforderung Java Basics - Anfänger-Themen 36
A GUI Programmierung mit Textfield Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
slejden Erste Schritte Frage zur OOP (objektorientierten Programmierung Java Basics - Anfänger-Themen 4
V Threads Nebenläufige Programmierung Java Basics - Anfänger-Themen 6
V Nebenläufige Programmierung Java Basics - Anfänger-Themen 5
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
S Programmierung eines Geldwechselautomaten! Java Basics - Anfänger-Themen 2
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
D JavaBeans und die visuelle Programmierung Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
A Programmierung herangehensweise Java Basics - Anfänger-Themen 9
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
G 3D-Spiele-Programmierung Java Basics - Anfänger-Themen 3
I Programmierung-Hausaufgabe: Hilfe benötigt Java Basics - Anfänger-Themen 8
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
T Nachhilfe JAVA Programmierung Java Basics - Anfänger-Themen 1
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
N Socket-Programmierung Java Basics - Anfänger-Themen 4
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
K Objektorientierten Programmierung Java Basics - Anfänger-Themen 3
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
N Objektorientierte Programmierung: Erben von 2 Klassen - wie ist korrekte Vorgehensweise? Java Basics - Anfänger-Themen 16
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
W objektorientierte Programmierung Java Basics - Anfänger-Themen 25
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
U Geräte-Programmierung ? Java Basics - Anfänger-Themen 15
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
T Objektorientierte Programmierung, わからない です Java Basics - Anfänger-Themen 6
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
S Objektorientierte Programmierung Java Basics - Anfänger-Themen 21
M Gui Programmierung Java Basics - Anfänger-Themen 21
J Spielevorschläge für Programmierung Java Basics - Anfänger-Themen 3
O Eisenbahn-Programmierung Java Basics - Anfänger-Themen 8
S Schlechte Programmierung Java Basics - Anfänger-Themen 5
O Probleme bei OO-Programmierung mit Vererbung Java Basics - Anfänger-Themen 18
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
N Umstieg auf objektorintierte Programmierung Java Basics - Anfänger-Themen 2
N Probleme mit meiner Programmierung Java Basics - Anfänger-Themen 5
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
H Programmierung Ampelsteuerung Java Basics - Anfänger-Themen 4
J [Erledigt] Applet Programmierung Java Basics - Anfänger-Themen 4
C Objektorientierte Programmierung Java Basics - Anfänger-Themen 11
T Gui Programmierung lernen Java Basics - Anfänger-Themen 3
E Toolkit (Scanner) Programmierung Java Basics - Anfänger-Themen 5
D Programmierung Profi Java Basics - Anfänger-Themen 18
G Problem bei Programmierung Java Basics - Anfänger-Themen 15
X Objektorientierte Java Programmierung - 3 Fragen zum Code Java Basics - Anfänger-Themen 5
G Problem bei Programmierung Java Basics - Anfänger-Themen 2
G thread programmierung für ANFÄNGER Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
I Frage wegen Wörterbuch Programmierung Java Basics - Anfänger-Themen 13
X Programmierung mit geometrischen Figuren Java Basics - Anfänger-Themen 3
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4
G Funktions Programmierung Java Basics - Anfänger-Themen 5
W Gui - Grundsätzliche Programmierung Java Basics - Anfänger-Themen 11
G Schnittstellen Programmierung Java Basics - Anfänger-Themen 5
G Nebenleufige Programmierung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben