IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

[md5] Différence Java - MySQL


Sujet :

Sécurité Java

  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut [md5] Différence Java - MySQL
    Bonjour

    Je veux pouvoir comparer 2 chaines de caractères qui sont des strings encryptées md5.
    Une de ces chaînes est stockée sous MySQL, l'autre est générée via Java. Je veux donc comparer sous JUnit qu'elles sont égales.
    Voici mon code Java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
     
    public class Encryption {
     
    	public String md5;
    	private MessageDigest md;
     
    	public Encryption() throws NoSuchAlgorithmException {
    		md = MessageDigest.getInstance("MD5");
    	}
     
    	private String convert(byte[]b){
    		StringBuffer sb = new StringBuffer();
    		for (int i = 0; i < b.length; i++) {
    		    int value = b[i] & 0xFF;
    		    sb.append(Integer.toHexString(value));
    		}
    		return sb.toString();
    	}
     
    	public String encrypt(String s){
    		byte[]input = s.getBytes();
    		md.update(input);
    		byte[]output = md.digest();
    		return convert(output);
    	}
     
    }
    Et la fonction JUnit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static void testEncrypt() {
    		com.bioxpr.beans.Encryption encryption = null;
    		try{
    			encryption = new com.bioxpr.beans.Encryption();
    		}
    		catch(java.security.NoSuchAlgorithmException nsae){
    			nsae.printStackTrace();
    		}
    		assertEquals("0d045ecfb7e80db47628f3269b2a9681", encryption.encrypt("GLDavid"));
    	}
    Au final, ma chaîne sous Java est "d45ecfb7e8db47628f3269b2a9681". Ce qui est différent de ce que j'attend.
    Ainsi, je me demande si cette différence est dûe à mon code Java ou aux implémentations d'algos entre Java et MySQL.
    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    L'algo MD5 est bien le même (heureusement !).
    La différence vient de la méthode toHexString() qui ne renvoit pas forcément ce qu'il faut, car elle supprime les zéros "inutiles" alors qu'on en as besoin...

    Si tu regarde bien ta chaine il manque exactement trois zéros : 0d045ecfb7e80db47628f3269b2a9681


    Tu peux jeter un coups d'oeil à ce post qui traite du même sujet : Utilisation de MD5 en java


    a++

Discussions similaires

  1. Utilisation de MD5 en java
    Par zola dans le forum Sécurité
    Réponses: 9
    Dernier message: 26/02/2011, 14h40
  2. Exception in thread main ! (Java+MySQL)
    Par condor_01 dans le forum Général Java
    Réponses: 12
    Dernier message: 24/04/2008, 09h25
  3. Problème Java/MySql : "Unknown database"
    Par darkflo dans le forum JDBC
    Réponses: 3
    Dernier message: 24/03/2006, 11h34
  4. [JDBC]Java MYSQL - Remplacer les apostrophes
    Par RapidJul dans le forum JDBC
    Réponses: 3
    Dernier message: 08/11/2005, 16h31
  5. [JDBC]java - mysql : Pb de driver
    Par xiao-long974 dans le forum JDBC
    Réponses: 2
    Dernier message: 03/06/2004, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo