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

11/12/2018 Les inscriptions pour le Hackathon sont maintenant ouvertes.
07/12/2018 Ceux/celles qui souhaitent devenir délégué(e) de leur groupe, envoyez vos candidatures par mail pour le 14 décembre à 20h00, au plus tard.
06/12/2018 Pour rappel, les examens de L2 et L3 ont été anticipés et auront lieu en semaine 51.
06/12/2018 Ceux et celles qui sont inscrit(e)s au tutorat de MA0102 ont reçu un mail pour vous indiquer les modalités.

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