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
A voir également:
- Verification de certificat
- Verification lien internet - Guide
- Verification windows 11 - Guide
- Police d'écriture certificat médical ✓ - Forum Graphisme
- Verification de l'identité du serveur impossible - Forum WiFi
- Vérification identité leboncoin impossible - Forum Réseaux sociaux
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.
Voir la documentation de la méthode toString pour comprendre le résultat.
La confiance n'exclut pas le contrôle
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
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:
eh bein je recupere pa la meme chose je doit avoir le haché (hash)
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 } }