Pour ma classe Java, une partie de mon projet consiste à obtenir une longueur de clé de chiffrement de l'utilisateur et à arrondir celle-ci au multiple de 1024 le plus proche. La longueur est passée comme longue. Dans ma méthode, je reçois le long et je reçois le chemin du fichier à écrire. Dans les exemples que j'ai vu cette implémentation:Comment écrire des octets dans un fichier basé sur un long avec SecureRandom(). NextBytes?
try (FileOutputStream out = new FileOutputStream(file)) {
byte[] bytes = new byte[1024];
new SecureRandom().nextBytes(bytes);
out.write(bytes);
}
Mais où et comment puis-je implémenter ma variable longue? Je ne peux pas mettre un long octet [long]. Je sais que je dois utiliser le SecureRandom(). NextBytes() selon mon professeur. Toute aide serait grandement appréciée car cette partie m'a rendu fou.
Voici ce que j'ai jusqu'à présent, mais je ne peux pas empêcher de penser ce n'est pas la façon dont mon professeur veut faire ...
public void oneKeyGenerator(String keyPath, long keyLength) {
final long CONST_MULTIPLE = 1024;
try {
FileOutputStream out = new FileOutputStream(keyPath);
byte[] bytes = new byte[1024];
for(long x = 0; x < keyLength/CONST_MULTIPLE; x++) {
new SecureRandom().nextBytes(bytes);
out.write(bytes);
}
} catch(IOException e){
gui.fileException(e.getMessage());
}
}
Est-ce que 'keyLength' indique le nombre d'octets ou de bits? – totoro
Indique la longueur de la clé. Ce qui va être la longueur du fichier dans lequel il est stocké en octets. – JoshuaRG1993