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

10/07/2019 Le calendrier des pré-rentrées et rentrées des trois années est en ligne.
09/07/2019 La procédure complémentaire pour la procédure VA13 est ouverte, jusqu'au 26 août.
07/06/2019 Les notes définitives sont en ligne sur le bureau virtuel.
25/03/2019 Les dossiers de VA13 (validation d'acquis) sont en ligne. La date limite de dépôt est le 14 juin 2019.

Contact

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

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

Facebook :
lien Facebook direct