私の Java クラスでは、プロジェクトの一部として、ユーザーから暗号化キーの長さを取得し、それを最も近い 1024 の倍数に丸めます。長さは long として渡されます。私の方法では、長いものを取得し、書き込み先のファイルパスを取得します。例では、この実装を見てきました:
try (FileOutputStream out = new FileOutputStream(file)) {
byte[] bytes = new byte[1024];
new SecureRandom().nextBytes(bytes);
out.write(bytes);
}
しかし、long 変数をどこにどのように実装すればよいのでしょうか。byte[long] に long を入れることができません。教授によると、SecureRandom().nextBytes() を使用する必要があることはわかっています。この部分は私を夢中にさせてきたので、どんな助けも大歓迎です。
これが私がこれまでに持っているものですが、これは私の教授が望んでいる方法ではないと思わずにはいられません...
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());
}
}