Utilisation de la classe javax.crypto.Cipher
Bonjour, j'ai qq petites questions sur l'utilisation de l'objet Cipher.
Lorsque j'instancie mon objet Cipher :
Code:
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:
1 2
|
cipher.init(Cipher.ENCRYPT_MODE, key, IvParameter, random); |
ou du déchiffrement
Code:
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:
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