Wie kann ich Dekodieren, mein md5-Verschlüsselung und wie rufe ich die Funktion richtig?

Ich habe zwei Fragen 1 ich habe den folgenden code, und ich weiß nicht, wie Sie es von einem anderen Teil von meinem code, ich.e-Mail, wenn der Benutzer registriert zu verschlüsseln string Passwort

public static final String md5(final String toEncrypt) { 
    try { 
        final MessageDigest digest = MessageDigest.getInstance("md5");               
        digest.update(toEncrypt.getBytes()); 
        final byte[] bytes = digest.digest();       

        final StringBuilder sb = new StringBuilder(); 

        for (int i = 0; i < bytes.length; i++) { 
            sb.append(String.format("%02X", bytes[i])); 
        } 

        return sb.toString().toLowerCase();
    } 
    catch (Exception exc) { return ""; //Impossibru! }
}

Zweite Frage ist, wie würde ich entschlüsseln, dass die saite, wenn ich ziehen Sie es aus meiner Datenbank zu entsprechen, was ein Benutzer in ein Eingabefeld.

  • MD5 ist nicht - Verschlüsselung.
  • MD5 ist ein Fleischwolf. Kuh geht im hamburger rauskommt. Sie können NICHT nehmen, die hamburger und kleben es wieder zusammen in eine Kuh. Sie nicht entschlüsseln, md5-hash, denn es kann NICHT dekodiert werden. Sie nehmen die Benutzer-Passwort-hash ist, der mit md5, dann vergleichen Sie die beiden md5-hashes.
  • ok, dann wie ich diese Funktion aufrufen, so, dass ich ecrypt, welche die Benutzer in das Feld ein und passen es an die Datenbank?
  • sorry bin in den Prozess des Lernens java und nicht 100% sicher, die Dinge noch
  • das ist die beste Beschreibung der Vermischung, die ich gehört habe. Ich werde auf jeden Fall zu verwenden, bei der Arbeit, wenn Menschen nicht bekommen.
  • Nur mit Hilfe einer hash-Funktion ist nicht ausreichend und nur das hinzufügen einer Salz tut wenig zur Verbesserung der Sicherheit. Stattdessen iIterate über einen HMAC mit einem zufälligen salt für etwa 100ms Dauer und speichern Sie das Salz mit dem hash. Verwenden Sie Funktionen wie PBKDF2, Rfc2898DeriveBytes, password_hash, Bcrypt - und ähnliche Funktionen. Der Punkt ist, um die Angreifer verbringen viel Zeit der Suche nach Passwörter durch brute-force.
  • Beginnen Sie, indem Sie den richtigen Begriff. Es nennt sich hashing keine Verschlüsselung. Verschlüsseln können Sie die ursprünglichen Daten wieder aus; hashing nur garantiert, dass, wenn Sie die gleiche Eingabe bekommen Sie die gleiche Leistung, und wenn du in eine andere Eingabe, erhalten Sie eine andere Ausgabe -- es gibt auch keine Garantie, dass man den Eingang vom Ausgang.
  • kryptographische hashes nicht reversibel design, das ist der Punkt. Die "keine Garantie" ist wirklich schwach und liefert den falschen Eindruck.

InformationsquelleAutor user2030485 | 2013-10-08
Schreibe einen Kommentar