Verification de certificat
mayanis26
Messages postés
19
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
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
-
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-
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) -
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 } } -
-