Verification de certificat

mayanis26 Messages postés 19 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
bonsoir jai une question j'ai crée un faux certificat de format text sous java et j'ai haché avec MD5 et signé avec la clé privé de mon autorité et lorsque j’essaye de dechiffrer pour comparer le haché je trouve pas le même résultat car l'un est en exadecimal et l'autre c'un code non compris. SOS

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Merci de fournir ton code et des exemples d'entrées et de sorties que tu obtiens parce que tes explications ne sont pas claires.

    Mais si j'en crois ton autre intervention (que j'ai supprimé, pas la peine de se disperser) ce que tu affiches c'est le tableau, pas son contenu.

    import java.util.Arrays;
    
    String[] tab = {"1", "2", "3"};
    System.out.println(tab); // [Ljava.lang.String;@2a139a55
    System.out.println(Arrays.toString(tab)); // [1, 2, 3]

    Voir la documentation de la méthode toString pour comprendre le résultat.
    La confiance n'exclut pas le contrôle
    0
    1. mayanis26 Messages postés 19 Statut Membre
       
      voici le code lorsque je hache et je signe avc la clé privé
      String infoForHash = nom+" "+prenom+" "+uniqueId+" "+fonction+" "+publicKeyClient+" RSA "+"md5 "+dateExp;
      System.out.println("le clair est:"+infoForHash);
      String hash = MD5.encode(infoForHash);
           
      System.err.println("les info hacher sont : "+hash);
           
      byte[] Signature = Serveur.rsaServer.crypt("hash");
      
      String certificat = infoForHash+" "+Signature;
      addCrt(certificat);

      voilai ici c'est bon lorsque je recupere ce quil ya dans le fichier la signature =je trouve ca [B@879864 la suite du code:
      byte[] sign1= sign.getBytes();
      String dechiffr = Serveur.rsaServer.decryptInString(sign1);

      eh bein je recupere pa la meme chose je doit avoir le haché (hash)
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      Je ne sais pas ce que tu manipules, d'où viennent les classes/méthodes MD5.encode, Serveur.rsaServer.crypt/decrypt et addCrt ? Je suis censé deviner ?

      De plus, comme je l'ai déjà expliqué plus haut, les affichages "[B@879864" sont issus du toString de Object, ça représente l'objet tableau, pas son contenu.

      Voici un exemple de hachage et cryptage en pur Java :

      import java.security.*;
      import java.util.Arrays;
      
      import javax.crypto.Cipher;
      
      public class Test {
          public static void main(String[] args) throws Exception {
      
              String text = "toto";
              System.out.println("le texte est: " + text);
      
              // MD5
      
              MessageDigest md5 = MessageDigest.getInstance("MD5");
      
              byte[] hash = md5.digest(text.getBytes());
              System.out.println("le hash est: " + Arrays.toString(hash));
      
              // RSA
      
              Cipher rsa = Cipher.getInstance("RSA");
              KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
              KeyPair keys = keyGen.generateKeyPair();
      
              // encrypt
      
              rsa.init(Cipher.ENCRYPT_MODE, keys.getPublic());
              byte[] encrypt = rsa.doFinal(hash);
              System.out.println("le crypté est: " + Arrays.toString(encrypt));
      
              // decrypt
      
              rsa.init(Cipher.DECRYPT_MODE, keys.getPrivate());
              byte[] decrypt = rsa.doFinal(encrypt);
              System.out.println("le décrypté est: " + Arrays.toString(decrypt));
      
              // verif
      
              System.out.println(Arrays.equals(hash, decrypt)); // true
          }
      }
      0
      1. mayanis26 Messages postés 19 Statut Membre > KX Messages postés 19031 Statut Modérateur
         
        Oui tout ca je l'ai compris mais la ligne 34 , moi je recupere le encrypt dans un fichier donc chaine de caractére et lorsque je lui mets .getbytes et je fais la ligne 34 je ne recupere pas le clair "text"
        0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Le hachage est irréversible, si ce que tu cryptes c'est le hash, ce que tu décryptes ce sera le hash. Jamais tu ne retrouveras le message d'origine à partir du hash.
      0