e-Babillard - plateforme pédagogique interactive
Pensez à mettre un avatar personnel Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer.
29 Mars 2024 à 13:39:54

Connexion avec identifiant, mot de passe et durée de la session
Recherche:     Recherche +
* Flux RSS www.jpdelx.com Accueil Aide Identifiez-vous Enregistrez-vous
+  e-Babillard - plateforme pédagogique interactive
|-+  Ressources pédagogiques communes concernant...
| |-+  JAVA
| | |-+  Sujet: [JAVA] Cryptage MD5
« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Sujet: [JAVA] Cryptage MD5  (Lu 2823 fois)
jpdelx
Administrator
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 13085


Il n'y a pas de questions idiotes...


WWW
[JAVA] Cryptage MD5
« le: 18 Novembre 2009 à 07:26:46 »

Bonjour


Code:
//AeSimpleMD5.java
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class AeSimpleMD5 {

    private static String convertToHex(byte[] data) {
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; i++) {
            int halfbyte = (data[i] >>> 4) & 0x0F;
            int two_halfs = 0;
            do {
                if ((0 <= halfbyte) && (halfbyte <= 9))
                    buf.append((char) ('0' + halfbyte));
                else
                    buf.append((char) ('a' + (halfbyte - 10)));
                halfbyte = data[i] & 0x0F;
            } while(two_halfs++ < 1);
        }
        return buf.toString();
    }

    public static String MD5(String text)
    throws NoSuchAlgorithmException, UnsupportedEncodingException  {
        MessageDigest md;
        md = MessageDigest.getInstance("MD5");
        byte[] md5hash = new byte[32];
        md.update(text.getBytes("iso-8859-1"), 0, text.length());
        md5hash = md.digest();
        return convertToHex(md5hash);
    }
}


Code:
//ex01.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;

public class ex01 {

    public static void main(String[] args) throws IOException {
        BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in));

        System.out.println("Enter string:");
        String rawString = userInput.readLine();

        try {
            System.out.println("MD5 hash of string: " + AeSimpleMD5.MD5(rawString));
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

@lpf


* java_md5.pdf (372.24 KB - Téléchargé 0 fois.)
* md5.png (12.38 KB - Téléchargé 26 fois.)
* Java simple class - MD5.pdf (26.82 KB - Téléchargé 0 fois.)
Journalisée

J.Phil. DELCROIX
www.jpdelx.com

Merci de rédiger vos messages dans un français compréhensible par tous !
Sébastien PICAVET
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 1363


Apprenti Bertrand Renard


WWW
[JAVA] Cryptage MD5
« Répondre #1 le: 18 Novembre 2009 à 11:03:23 »

Code:
int halfbyte = (data[i] >>> 4) & 0x0F;
Qu’est-ce que fait cette ligne ?
Journalisée

Il n’y a toujours qu’une seule vérité.
jpdelx
Administrator
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 13085


Il n'y a pas de questions idiotes...


WWW
[JAVA] Cryptage MD5
« Répondre #2 le: 18 Novembre 2009 à 11:13:16 »

Sébastien

>>> : il s'agit d'un décalage de bits à droite ! [ en savoir +Tongue

& 0x0F : il s'agit d'un "ET" binaire [ en savoir +Tongue x 2

Extraction des 4 bits de poids forts ?

C'est sur ce genre de "détail" qu'on s'aperçoit que la codification en Langage C sert à quelque chose ! Wink

@lpf

PS : http://en.wikipedia.org/wiki/Bitwise_operation


* java_opérateur_décalage.png (14.33 KB - Téléchargé 22 fois.)
Journalisée

J.Phil. DELCROIX
www.jpdelx.com

Merci de rédiger vos messages dans un français compréhensible par tous !
Sébastien PICAVET
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 1363


Apprenti Bertrand Renard


WWW
[JAVA] Cryptage MD5
« Répondre #3 le: 18 Novembre 2009 à 11:42:43 »

C’est surtout le « >>> » qui me laissait perplexe. Je connaissais l’écriture hexadécimale et la comparaison bit-à-bit.

C’est sûr que l’on ne rencontre que rarement cette écriture en Java.
Journalisée

Il n’y a toujours qu’une seule vérité.
jpdelx
Administrator
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 13085


Il n'y a pas de questions idiotes...


WWW
[JAVA] Cryptage MD5
« Répondre #4 le: 18 Novembre 2009 à 11:46:54 »

Sébastien

Cela dépend beaucoup du domaine des applications : en informatique de gestion, c'est plutôt
rare. Dans celui ( par exemple ) de la programmation des réseaux, c'est plus courant  Smiley

@lpf

J.Phil.
Journalisée

J.Phil. DELCROIX
www.jpdelx.com

Merci de rédiger vos messages dans un français compréhensible par tous !
Pages: [1] Imprimer 
e-Babillard - plateforme pédagogique interactive  |  Ressources pédagogiques communes concernant...  |  JAVA  |  Sujet: [JAVA] Cryptage MD5 « sujet précédent | | sujet suivant »
Aller à:  

Propulsé par MySQL Propulsé par PHP e-Babillard - plateforme pédagogique interactive | Propulsé par SMF 1.0.6 modifié par jpdelx.
© 2001-2005, Lewis Media. Tous droits réservés.
XHTML 1.0 Transitionnel valide ! CSS valide !
Page générée en 0.103 secondes avec 20 requêtes.