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
Version imprimable
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]
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:
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:roll:
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.