私のJavaクラスでは、私のプロジェクトの一部は、ユーザーから暗号化キーの長さを取得し、それを1024の最も近い倍数に丸めます。長さはlongとして渡されます。私の方法では、私は長いと私は書き込みするファイルパスを取得します。例では、私はこの実装を見てきました:SecureRandom()でlongに基づいてファイルにバイトを書き込むにはどうすればいいですか?nextBytes?
try (FileOutputStream out = new FileOutputStream(file)) {
byte[] bytes = new byte[1024];
new SecureRandom().nextBytes(bytes);
out.write(bytes);
}
しかし、どこで、どのように私は私の長い変数を実装していますか?長いバイトを入れることはできません。私は私の教授に従って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());
}
}
「keyLength」はバイト数またはビット数を表しますか? – totoro
キーの長さを示します。これはバイト単位で格納されているファイルの長さになります。 – JoshuaRG1993