Bonjours,
Est-ce qu’on peut décrypter un mot de type String, pas de type Byte, car le mot que je veut le décrypter je l’ai récupérer à partir d’un fichier XML
Merci d'avance
Bonjours,
Est-ce qu’on peut décrypter un mot de type String, pas de type Byte, car le mot que je veut le décrypter je l’ai récupérer à partir d’un fichier XML
Merci d'avance
Qu'entends-tu par "décrypter"?
Une String n'est qu'une suite de Byte, tu peux passer de l'un à l'autre comme tu veux
edit: preum's ouais!!!
C'est un peu vague comme question...
Ma première réponse est : oui
Bon comme je suis gentil je vais essayer de t'aider un peu plus
- comment est représentée ta chaine ? Base64 ? ASCII ?
- quel est l'algorithme de cryptage ?
Je ne comprends pas bien la question...
Si tu as un texte crypté, il te faut :
- connaître l'algorithme de cryptage
- connaître la clé de décryptage
Si tu as un texte haché (MD5 d'un mot de passe par exemple), tu ne peux en théorie pas récupérer le mot de passe original.
Dans la pratique certains algorithmes ne sont pas complètement fiables et on peut retrouver un mot de passe correspondant si on connaît l'algorithme de hachage.
[EDIT]Doublement grillé...[/EDIT]
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
J’ai utilisé le code de l’algorithme de Blowfish qui se trouve ds ce lien , et l’adapter à mes besoins donc j’ai définie autre classe contenant deux méthodes crypter et décrypter voici le code:
lors de l'execution ,le code crypter est marche bien ,mais pour le décryptage ,L’erreur que j’ai vu :
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
31 import java.math.BigInteger; public class Crypto { String nom; BigInteger nomcry; void crypter() { System.out.println("debut de cryptage"); nom = "admin";//le mot de passe que je le recuperai aprés System.out.println("plaintext = " + nom); MyBlowfish bf = new MyBlowfish(); bf.generateKey(); byte[] secretKey = bf.getSecretKeyInBytes(); byte[] ciphertext = bf.crypt(nom); nomcry= new BigInteger(ciphertext); System.out.println("ciphertext = " + nomcry); } void decryter() { MyBlowfish bf = new MyBlowfish(); bf.generateKey(); byte[] secretKey = bf.getSecretKeyInBytes(); bf.setSecretKey(secretKey); String plaintext2 = bf.decryptInString(nomcry.toByteArray()); System.out.println("plaintext2 = " + plaintext2); if (!plaintext2.equals(nom)) System.out.println("Error: plaintext2 != plaintext"); } }
< javax.crypto.BadPaddingException: Given final block not properly padded >
je crois que l'erreur est ds nomcry.toByteArray(),mais j'ai ps pu résoudre
merci![]()
Erreur de padding ---> Trop long à expliquer ici.
Trouves-toi un bouquin sur le chiffrement ou un tuto web.
Tu ne peux pas utiliser ce genre de technologie sans un minimum de recherche et de connaissances à assimiler.
Partager