Bonjour, j'ai qq petites questions sur l'utilisation de l'objet Cipher.
Lorsque j'instancie mon objet Cipher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
final Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding", "BC");
Que faut-il mettre en premier paramètre ("AES/CTR/NoPadding") ? J'ai trouvé sur le net les valeurs possibles mais je n'ai pas bien compris les différences.
Si qq'un m'envoie une donnée chiffrée et que de son coté il a utilisé "AES/CTR/NoPadding" (par exemple) pour chiffrer, est-ce que je dois utiliser la même chose pour mon objet Cipher pour déchiffrer ? Si oui, comment je connais cette valeur ?

J'ai une autre question, lors du chiffrement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
cipher.init(Cipher.ENCRYPT_MODE, key, IvParameter, random);
ou du déchiffrement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
cipher.init(Cipher.DECRYPT_MODE, key, IvParameter, random);
A quoi correspond IvParameter ? J'ai bien trouvé une façon de le générer un utilisation un tableau de bytes aléatoire, basé sur cipher.getBlockSize():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
byte[] ivBytes = new byte[cipher.getBlockSize()];
random.nextBytes(ivBytes);
IvParameterSpec param = new IvParameterSpec(ivBytes);
mais j'aimerais comprendre à quoi ça cert et comment être sûr d'avoir un paramètre correct ?

Merci d'avance
Le marlou