Bonjour ,
Je cherche à crypter un mot de passe avec une phrase secrète pour que je puisse le décrypter avec la même phrase . quelqu'un connait un api ou un moyen de le faire ?
Merci
Bonjour ,
Je cherche à crypter un mot de passe avec une phrase secrète pour que je puisse le décrypter avec la même phrase . quelqu'un connait un api ou un moyen de le faire ?
Merci
Bonjour,
tu peux utiliser la class Cipher de javax.crypto de la facon suivante :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 import javax.crypto.*; import java.security.*; import javax.crypto.spec.*; public class TestCipher { public static String encrypt(String password,String key){ try { Key clef = new SecretKeySpec(key.getBytes("ISO-8859-2"),"Blowfish"); Cipher cipher=Cipher.getInstance("Blowfish"); cipher.init(Cipher.ENCRYPT_MODE,clef); return new String(cipher.doFinal(password.getBytes())); } catch (Exception e) { return null; } } public static String decrypt(String password,String key){ try { Key clef = new SecretKeySpec(key.getBytes("ISO-8859-2"),"Blowfish"); Cipher cipher=Cipher.getInstance("Blowfish"); cipher.init(Cipher.DECRYPT_MODE,clef); return new String(cipher.doFinal(password.getBytes())); } catch (Exception e) { System.out.println(e); return null; } } public static void main(String[] args) { String maCle = "concombre"; System.out.println("Ma clé de cryptage : " + maCle); System.out.println(""); String phrase = "Mon secret ne doit pas être divulgué."; System.out.println("Message a crypter : " + phrase); System.out.println(""); String resultatCrypte = encrypt(phrase, maCle); System.out.println("Résultat crypté: " + resultatCrypte); System.out.println(""); String resultatDecrypte = decrypt(resultatCrypte,maCle); System.out.println("Decryptage du resultat precedent : " + resultatDecrypte); } }
Je remplacerais ISO-8859-2 par UTF-8 ou à la rigueur windows-1252, mais sinon oui. Blowfish est simple d'emploi et raisonnablement solide.
A noter que la forme cryptée devrait être fournie sous forme de byte[] et non pas de String. Ou alors, en hexa, pour pouvoir l'afficher sur la console.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager