[JAVA] Passwort-Hashing und Authentifizierung mit JBcrypt

Was ich getan habe

Ich habe JBcrypt in Java (Spring) verwendet, um das Passwort zu hashen und zu authentifizieren.

Vorbereitung

Rufen Sie die JAR-Datei von [MVN REPOSITORY] ab (https://mvnrepository.com/artifact/de.svenkubiak/jBCrypt/0.4).

Passwort-Hashing


@PostMapping("/sample")
public String sample(@Validated SampleForm sampleForm,
	BindingResult bindingResult, Model model) {

        //Konvertieren Sie das Passwort für den Eingabewert in den Hashwert
	String hashedCode = BCrypt.hashpw(sampleForm.getPassword(), BCrypt.gensalt());

        //Verarbeitung zum Speichern des Hash-Passworts in der DB unten

        ...
}

Salt ist eine Zeichenfolge, die vor und nach dem Kennwort angehängt wird, bevor es in die Hash-Funktion eingefügt wird. [Zitat aus IT-Glossar, mit dem Sie das Gefühl haben, zu verstehen, auch wenn Sie es nicht verstehen

Passwortauthentifizierung


@Override
public boolean isPasswordCorrect(String inputPassword) {

        final String SAMPLE_SQL = "Hier aufgeführte SQL-Anweisung"

        //Passwort von DB abrufen
        Map<String, Object> PasswordFromDB = jdbcTemplate.queryForMap(SAMPLE_SQL);
        String passwordFromDB = (String)PasswordFromDB.get("password");

        //Vergleichen Sie das Klartext-Eingabe-Kennwort, das der Eingabewert ist, mit dem Hash-KennwortFromDB in der Datenbank
        if(BCrypt.checkpw(inputPassword, passwordFromDB)) {
            //wird bearbeitet
	    }
}

Zusammenfassung

Einfach zu hashen!

Beim Hashing


BCrypt.hashpw(Wert, den Sie hashen möchten, BCrypt.gensalt());

Bei der Authentifizierung des Hash-Werts


BCrypt.checkpw(Nur-Text-Wert, den Sie vergleichen möchten,Hashed-Wert von DB erhalten);

das ist alles. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Passwort-Hashing und Authentifizierung mit JBcrypt
SNS-Authentifizierung mit Rails Google
Signieren und Validieren mit java.security.Provider
Animation mit MatchedGeometryEffect und @Namespace
Zugriff für user'root '@' localhost 'verweigert (mit Passwort: YES) und aufgegeben
Scala: HMAC SHA-1 Hashing und Base64-Aufzeichnung für die CloudStack-API-Authentifizierung