Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Crack the Password: Unterschied zwischen den Versionen

K
 
(6 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=== Crack the Password! ===
 
=== Crack the Password! ===
Nachdem du dich erfolgreich in Prof. Peppers' Computer gehackt hast, stehst du jetzt vor der letzten Barriere, bevor du dir die Musterlösung pünktlich vor der Klausur saugen kannst.
+
Nachdem du dich erfolgreich in Prof. Peppers Computer gehackt hast, stehst du jetzt vor der letzten Barriere, bevor du dir die Musterlösung pünktlich vor der Klausur saugen kannst.
  
 
Der folgende Code überprüft das Passwort, mit dem du dich einloggen kannst. Alles was du aus internen Quellen weißt, ist, dass es nur 4 gültige Zahlen zwischen 1 und 1000 gibt um dich einzuloggen.
 
Der folgende Code überprüft das Passwort, mit dem du dich einloggen kannst. Alles was du aus internen Quellen weißt, ist, dass es nur 4 gültige Zahlen zwischen 1 und 1000 gibt um dich einzuloggen.
Zeile 6: Zeile 6:
 
Kopiere folgende Methode, die überprüft ob die Passworteingabe richtig war, in dein Programm.
 
Kopiere folgende Methode, die überprüft ob die Passworteingabe richtig war, in dein Programm.
  
public static boolean checkPasscode(int H4X0R){
+
<pre>
// returns true if passcode is valid
+
public static boolean checkPasscode(int H4X0R) {
boolean result = false;
+
// returns true if passcode is valid
for(int E1337=42; E1337<=(52^(0x6c)); E1337+=(3<<(14%6))){
+
boolean result = false;
if(result=((++E1337|E1337+(2>>>1))^(1+H4X0R))==(123456789&0))
+
for (int E1337 = 42; E1337 <= (52 ^ (0x6c)); E1337 += (3 << (14 % 6))) {
break;
+
if (result = ((++E1337 | E1337 + (2 >>> 1)) ^ (1 + H4X0R)) == (123456789 & 0))
}
+
break;
return result;
+
}
}
+
return result;
 +
}
 +
</pre>
 
 
 
# Finde die 4 gültigen Zahlen mittels [[wikipedia:Brute-Force|Brute-Force]] und gib sie auf der Konsole aus (Brute-Force = Rohe Gewalt, darunter versteht man das simple Ausprobieren aller möglichen Kombinationen).
 
# Finde die 4 gültigen Zahlen mittels [[wikipedia:Brute-Force|Brute-Force]] und gib sie auf der Konsole aus (Brute-Force = Rohe Gewalt, darunter versteht man das simple Ausprobieren aller möglichen Kombinationen).
Zeile 24: Zeile 26:
 
== Kommentare ==
 
== Kommentare ==
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 
 
<!--
 
<!--
 
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
 
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
 +
-->
 +
 +
 +
==== Sebastian ====
 +
 +
Interessanter Code.) Hat ne Zeitlang gedauert ihn zu verstehen und die Passwörter ohne Burtforce zu erhalten, aber es ging:). Noch lustiger wäre es gewesen, wenn in dem Prog ne Art Timer drin wäre. Sodass man zb die 1. Zahl nur 10 sec eingeben kann und er dann in die nächste schleifenrunde läuft.)
 +
 +
  
 
==== Robert ====
 
==== Robert ====
 
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
 
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
-->
+
 
 +
 
 +
 
 +
 
 +
 
 +
Kann es sein das der Vorgegebene Code ein der Zeile for(int... hinten eine Kalmmer zuviel hat? wenn man die wegmacht meckert der Kompiler immerhin nicht mehr rum
 +
: nö, bei mir läuft der Code so wie angegeben. Muss halt in eine Klasse eingefügt werden... --[[Spezial:Beiträge/77.23.100.117|77.23.100.117]] 13:59, 23. Mär. 2010 (CET)
 +
 
 +
 
 +
 
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
 
[[Kategorie:Java_Aufgaben]]
 
[[Kategorie:Java_Aufgaben]]

Aktuelle Version vom 4. März 2013, 13:37 Uhr

Crack the Password!

Nachdem du dich erfolgreich in Prof. Peppers Computer gehackt hast, stehst du jetzt vor der letzten Barriere, bevor du dir die Musterlösung pünktlich vor der Klausur saugen kannst.

Der folgende Code überprüft das Passwort, mit dem du dich einloggen kannst. Alles was du aus internen Quellen weißt, ist, dass es nur 4 gültige Zahlen zwischen 1 und 1000 gibt um dich einzuloggen.

Kopiere folgende Methode, die überprüft ob die Passworteingabe richtig war, in dein Programm.

public static boolean checkPasscode(int H4X0R) {
	// returns true if passcode is valid
	boolean result = false;
	for (int E1337 = 42; E1337 <= (52 ^ (0x6c)); E1337 += (3 << (14 % 6))) {
		if (result = ((++E1337 | E1337 + (2 >>> 1)) ^ (1 + H4X0R)) == (123456789 & 0))
			break;
	}
	return result;
}
  1. Finde die 4 gültigen Zahlen mittels Brute-Force und gib sie auf der Konsole aus (Brute-Force = Rohe Gewalt, darunter versteht man das simple Ausprobieren aller möglichen Kombinationen).
  2. Für die absoluten Cracks: Wie funktioniert der Algorithmus?


Hinweis: Eine Übersicht zu den verwendeten Java-Operatoren könnte nützlich sein: http://www.java-forum.org/java-faq-beitraege/1364-operatoren-ubersicht.html

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)


Sebastian

Interessanter Code.) Hat ne Zeitlang gedauert ihn zu verstehen und die Passwörter ohne Burtforce zu erhalten, aber es ging:). Noch lustiger wäre es gewesen, wenn in dem Prog ne Art Timer drin wäre. Sodass man zb die 1. Zahl nur 10 sec eingeben kann und er dann in die nächste schleifenrunde läuft.)


Robert

Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.



Kann es sein das der Vorgegebene Code ein der Zeile for(int... hinten eine Kalmmer zuviel hat? wenn man die wegmacht meckert der Kompiler immerhin nicht mehr rum

nö, bei mir läuft der Code so wie angegeben. Muss halt in eine Klasse eingefügt werden... --77.23.100.117 13:59, 23. Mär. 2010 (CET)