Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#14

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 18:34
Ein Hash hat gerade die absichtliche Eigenschaft, daß man den Eingangsstring nicht berechnen kann ... nichtmal mit Bruteforce.
Das spielt doch keine Rolle! Sobald man nur einen Treffer findet ist der Schlüssel/Passwort/WasAuchImmer gebrochen.
Natürlich gibt es zu einem Hashwwert im Prinzip unendlich viele Schüssel.
Aber der Schlüssel mit der kürzesten Länge wird mit höchster Wahrscheinlichkeit der ursprüngliche Schlüssel sein.

Wenn man weiss dass ein Passwort eine bestimmte maximale Länge hat, sich auch ganz bestimmten Zeichen (z.B. nur Ziffern) zusammensetzt und mit MD5 (oder MD4, Sha1,...) gehasht wurde kann man ausrechnen wie viele mögliche Kombinationen er gibt.
Wenn es nicht zu viele Kombinationen sind kann man mit Bruteforce leicht zum Erfolg kommen.
Selbst wenn das Passwort "gesalzen" ist, aber die Methode bekannt ist kann man Bruteforce ansetzen.

Delphi-Quellcode:
// Pseudocode
function SaltPW(const PW:string):string;
begin
   return "salt42" + PW;
end;

for i:= minlen to maxlen do
   foreach pw:string in Range(['0'..'9', 'a'..'z'], i) do
   begin
      if(MD5string(SaltPW(pw)) = '51f6f8fe03a390d3de50ad49913d4b66then
      begin
         ShowMessage('Passwort='+pw);
         return;
      end;
   end
fork me on Github

Geändert von sx2008 (14. Dez 2014 um 18:39 Uhr)
  Mit Zitat antworten Zitat