Comment crypter decrypter un mot de passe
Bonjour, je n'arrive pas à comprendre le fonctionnement du cryptage decryptage.
Voici mon code.
ECRITURE
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
String sql2 = "INSERT INTO membre (idmembre,email,pseudo,token,password,role, verification) VALUES (NULL, ?, ?, ?, ?, 'visiteur', '0')";
PreparedStatement statement2 = conn.prepareStatement(sql2);
statement2.setString(1, request.getParameter("email"));
statement2.setString(2, request.getParameter("pseudo"));
int Max = 1000000; int Min = 0;
Integer nbaleatoire = Min + (int)(Math.random() * ((Max - Min) + 1));
String token = nbaleatoire.toString();
statement2.setString(3, token);
String motpasse= request.getParameter("password");
String motpasse2= request.getParameter("password2");
if (!motpasse.equals(motpasse2))
{System.out.println("erreur");
response.sendRedirect("enregistrement.jsp?erreure=3");
}
else {
/*
* Cryptage
*
*/
TestCipherDESede Cryptage = new TestCipherDESede();
final String message = motpasse;
KeyGenerator keyGen;
keyGen = KeyGenerator.getInstance("DESede");
keyGen.init(168);
SecretKey cle = keyGen.generateKey();
System.out.println("cle : " + new String(cle.getEncoded()));
byte[] enc = Cryptage.encrypter(message, cle);
System.out.println("texte encrypte : " + new String(enc));
/*
* fin cryptage
*/
motpasse = new String(enc);
statement2.setString(4, motpasse);
int rowsInserted = statement2.executeUpdate();
if (rowsInserted > 0) {
System.out.println("A new user was inserted successfully!");
response.sendRedirect("index.jsp?erreure=2#formulaire");
}
else {
System.out.println("erreur");
response.sendRedirect("enregistrement.jsp?erreure=3");
}
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} |
LECTURE
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
String sql = "SELECT email, idmembre, token, password , pseudo FROM membre WHERE email = ?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, request.getParameter("email"));
System.out.println("requette email" + request.getParameter("email"));
ResultSet rowsselected = statement.executeQuery();
statement.getResultSet();
while (rowsselected.next())
{
System.out.println("REQUETTE select EFFECTUE");
String email = rowsselected.getString("email");
String motpasse = rowsselected.getString("password");
String passwordCrypte = rowsselected.getString("password");
/*
* debut cryptage
*/
TestCipherDESede Cryptage = new TestCipherDESede();
String message = passwordCrypte;
KeyGenerator keyGen;
try {
keyGen = KeyGenerator.getInstance("DESede");
keyGen.init(168);
SecretKey cle = keyGen.generateKey();
System.out.println("cle : " + new String(cle.getEncoded()));
byte[] enc = TestCipherDESede.encrypter(message, cle);
System.out.println("texte encrypte : " + new String(enc));
String dec = TestCipherDESede.decrypter(enc, cle);
System.out.println("texte decrypte : " + dec);
message = dec;
} catch (Exception e) {
e.printStackTrace();
}
/*
* fin cryptage
*/
if (motpasse.equals(message)) {
response.sendRedirect("index.jsp");
}
}
System.out.println("erreur");
response.sendRedirect("index2.jsp?erreure=1");
} catch (Exception ex) {
ex.printStackTrace();
}
}
} |
Le cryptogramme
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
public class TestCipherDESede {
public static void main(String[] args) {
final String message = "Mon message a traiter";
KeyGenerator keyGen;
try {
keyGen = KeyGenerator.getInstance("DESede");
keyGen.init(168);
SecretKey cle = keyGen.generateKey();
System.out.println("cle : " + new String(cle.getEncoded()));
byte[] enc = encrypter(message, cle);
System.out.println("texte encrypte : " + new String(enc));
String dec = decrypter(enc, cle);
System.out.println("texte decrypte : " + dec);
} catch (Exception e) {
e.printStackTrace();
}
}
public static byte[] encrypter(final String message, SecretKey cle)
throws NoSuchAlgorithmException, NoSuchPaddingException,
InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.ENCRYPT_MODE, cle);
byte[] donnees = message.getBytes();
return cipher.doFinal(donnees);
}
public static String decrypter(final byte[] donnees, SecretKey cle)
throws NoSuchAlgorithmException, NoSuchPaddingException,
InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.DECRYPT_MODE, cle);
return new String(cipher.doFinal(donnees));
}
} |