Cyril Rabat


Génération d'empreinte en Java

 25/11/2015     23/10/2017      Programmation Java      Programmation client/serveur      Sécurité   

Utilisation de l'algorithme de hachage SHA pour générer une empreinte

   Cet article montre comment utiliser la classe MessageDigest qui permet de générer une empreinte d'un message (ou d'un fichier).

Mots-clefs :   Java     empreinte     SHA     MessageDigest   

La classe présentée dans cet article permet de générer une empreinte d'un message passé en argument.

Le programme

Le programme ci-dessous exploite la classe MessageDigest pour générer une empreinte d'un message passé en argument. Dans un premier temps, l'empreinte est récupérée comme une instance de la classe MessageDigest. Puis, il suffit d'exploiter la méthode digest pour mettre à jour l'empreinte à partir d'une chaîne de caractères (ou bien du contenu d'un fichier). On obtient finalement un tableau d'octets.

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
/**
 * Classe permettant de tester le hachage avec SHA-256.
 * @author Cyril Rabat
 * @version 23/10/2017
 */
public class HachageMessage {
 
    /**
     * Méthode principale.
     * @param args[0] message dont on veut l'empreinte SHA-256
     */
    public static void main(String[] args) {
        // Vérification des arguments
        if(args.length != 1) {
            System.err.println("Utilisation :");
            System.err.println("  java HachageMessage message");
            System.err.println("    où :");
            System.err.println("      - message : message dont on veut produire l'empreinte");
            System.exit(-1);
        }
 
        // Préparation de l'empreinte
        MessageDigest empreinte = null;
        try {
            empreinte = MessageDigest.getInstance("SHA-256");
        } catch(NoSuchAlgorithmException e) {
            System.err.println("Problème avec SHA : " + e);
            System.exit(-1);
        }
 
        // Calcul de l'empreinte
        byte[] bytes = empreinte.digest(args[0].getBytes());
        String resultat = new String(bytes);
 
        System.out.println("Message   : " + args[0]);
        System.out.println("Empreinte : " + resultat);
    }
 
}

 Télécharger le fichier

Utilisation

Pour utiliser le programme, tapez simplement la commande suivante (une fois le programme compilé) :

java HachageMessage "Bonjour tout le monde"

Articles connexes


Version de cette page Mercredi 16 Décembre 2015

© Cyril Rabat 2018

Connexion

Mot de passe perdu

Dernières nouvelles

23/01/2019 Les emplois du temps sont de nouveau accessible depuis le site de l'UFR Sciences.
15/01/2019 Le CM d'INFO0204 de Mercredi 16 Janvier a été annulé (à cause d'un problème de salle trop petite).
23/12/2018 Vous pouvez dorénavant accéder à vos notes en ligne.
09/11/2018 Le planning des examens (EET) est disponible sur la page dédiée. Pour rappel : pas d'EET en L1 et semaine d'examens pour les L2 et L3 en semaine 51 (calendrier anticipé).

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-326-91-33-81

Fax :
+33-326-91-33-97

Facebook :
lien Facebook direct