Hashes und Zweifaktorauthentifizierung

Seite zum Ausprobieren von Hash-Algorithmen

MD5

  • Haus

    ebacf61946ee81f386960ad2a09a147e

  • haus

    195efe600e8ee7550c43b93116820275

  • Laus

    c3694b483eed355a49954b09f345df09

SHA-1

  • Haus

    22b78e2d5e887ec315104ccbe9430c30ceeb82a3

  • haus

    2b4e21824eae8daa555a12462de8ee95158d0167

  • Laus

    26aff90edc2ce45c123b7bf55d215f0bbf9e5971

SHA-256

  • Haus

    50976ad58f5da02b7be89a224ef09b47ce3b5517623dd927576dc72ebca9214e

  • haus

    1a21f58f9570039d5e23f3619c8e9749bca19443fda30d6ebe352a90e69777cc

  • Laus

    e94a6083b91e11e50cbf911eef25c4fed3dd01c3848804801aa6b041fd2e76a3

String passwort="passwort";
InputStream stream = new ByteArrayInputStream(passwort
        .getBytes(StandardCharsets.UTF_8));
// oder, um einen Hash für eine Datei zu bestimmen:
// InputStream stream = new FileInputStream("D:\\test.png");
try {
    // SHA-1, MD5 oder SHA-256
    System.out.println(Hash.checksum(stream, "SHA-256"));
} catch (Exception e) {
    e.printStackTrace();
}
Java
import java.io.InputStream;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import javax.xml.bind.DatatypeConverter;

public class Hash {
    public static String checksum(InputStream content,
            String hashFunction) throws Exception {

        byte[] buffer = new byte[8192];
        MessageDigest md = MessageDigest.getInstance(hashFunction);

        try (DigestInputStream dis = new DigestInputStream(content, md)) {
            while (dis.read(buffer) != -1);
        }
        return DatatypeConverter.printHexBinary(md.digest());
    }
}
Java

  • Erkläre deinem Nachbarn den Unterschied zwischen Salt und Pepper.

  • Erweitere dein Programm, das einen Benutzer auf korrekte Eingabe von Benutzernamen und zugehörigem Passwort überprüft, sukzessive um

    • gehashte Passwörter

    • gehashte Passwörter mit Salt

    • gehashte Passwörter mit Salt und Pepper

Zwei-Faktor-Authentifizierung

  • Erstelle ein Programm, das die Zwei-Faktor-Authentifizierung mit Hilfe von Google Authenticator testet.

  • Erweitere deinen Webserver um die Zweifaktor-Authentifizierung, indem zu jedem Benutzer der zugehörige geheime Schlüssel gespeichert und bei der Passwort-Abfrage berücksichtigt wird.

    Teste die Zwei-Faktor-Authentifizierung am Webserver mit deinem Handy.