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

15/10/2018 Tous les étudiants de la Licence Informatique ont réunion sur la mobilité internationale, Mercredi 17 Octobre, de 13h30 à 14h00 (et non à 12h30), en Amphi 3.
02/10/2018 Pour la deuxième année consécutive, l'URCA est partenaire de l’événement Coding Battle. Tous les étudiants de Licence et de Master sont appelés à y participer le 17 octobre de 19h à 21h.
01/10/2018 Les emplois du temps sont maintenant accessibles depuis la page de la scolarité.
27/09/2018 Une page a été créée pour vous permettre d'obtenir toutes les informations concernant les stages pour la Licence. Contactez le responsable pour plus d'informations.

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