[JAVA] Hachage et authentification de mot de passe à l'aide de JBcrypt

Ce que j'ai fait

J'ai utilisé JBcrypt en Java (Spring) pour hacher le mot de passe et l'authentifier.

Préparation

Récupérez le fichier jar depuis MVN REPOSITORY

Hachage de mot de passe


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

        //Convertir le mot de passe de la valeur d'entrée en valeur de hachage
	String hashedCode = BCrypt.hashpw(sampleForm.getPassword(), BCrypt.gensalt());

        //Traitement pour stocker le mot de passe haché dans la base de données ci-dessous

        ...
}

Salt est une chaîne qui est attachée avant et après le mot de passe avant qu'il ne soit mis dans la fonction de hachage. [Citation tirée du Glossaire informatique qui vous donne l'impression de comprendre même si vous ne comprenez pas

Authentification par mot de passe


@Override
public boolean isPasswordCorrect(String inputPassword) {

        final String SAMPLE_SQL = "Instruction SQL répertoriée ici"

        //Obtenir le mot de passe de la base de données
        Map<String, Object> PasswordFromDB = jdbcTemplate.queryForMap(SAMPLE_SQL);
        String passwordFromDB = (String)PasswordFromDB.get("password");

        //Comparez le mot de passe d'entrée en texte brut qui est la valeur d'entrée avec le mot de passe hachéFromDB dans la base de données
        if(BCrypt.checkpw(inputPassword, passwordFromDB)) {
            //En traitement
	    }
}

Résumé

Facile à hacher!

Lors du hachage


BCrypt.hashpw(Valeur que vous souhaitez hacher, BCrypt.gensalt());

Lors de l'authentification de la valeur hachée


BCrypt.checkpw(Valeur de texte brut que vous souhaitez comparer,Valeur hachée obtenue à partir de DB);

c'est tout. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Hachage et authentification de mot de passe à l'aide de JBcrypt
Authentification SNS à l'aide de Rails google
Signature et validation à l'aide de java.security.Provider
Animation utilisant matchedGeometryEffect et @Namespace
Accès refusé pour user'root '@' localhost '(en utilisant le mot de passe: OUI) et abandonné
Scala: hachage HMAC SHA-1 et encodage Base64 pour l'authentification API CloudStack