Bonjour,

J'aimerais crypter un message avec un clé qui m'est fourni par l'utilisateur, mais je ne suis pas sûr que l'algorithme PBE soit assez sécurisé.

Pour le moment, je fais ça :

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
private static String encode(String message, String key) {
        try {
            PBEKeySpec keySpec = new PBEKeySpec(key.toCharArray());
 
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
            SecretKey secretKey = keyFactory.generateSecret(keySpec);
 
            Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
 
            return new String(cipher.doFinal(message.getBytes()));
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return "Error";
    }
Mais ici, j'utilise DES et MD5 qui sont tout de même des vieux algorithmes. J'aimerais faire le même avec SHA-256 et AES, mais j'ai pas trouvé comment le faire parce que la KeyFactory ne marche pas avec PBEWithSHAAndAES.

Est-ce que c'est possible de choisir l'algorithme de hashage et celui de cryptage ?

Et deuxième question, est-ce possible d'utiliser une clé non-ASCII ?

Merci d'avance

Baptiste