SecureRandomのnextBytes()
メソッドを使用できます。
final SecureRandom srandom = new SecureRandom();
final byte []data = new byte[3000];
srandom.nextBytes(data);
印刷可能な文字を含むランダムな文字列が必要な場合は、次のようにすることができます。
public enum StringUtils
{
INSTANCE;
private static final String CANDIDATES = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
private static final int CANDIDATESLEN;
static
{
CANDIDATESLEN = CANDIDATES.length();
}
public static String generateRandomString(int length)
{
final StringBuffer sb = new StringBuffer(length);
for (int i = 0; i < length; i++)
{
sb.append(CANDIDATES.charAt(RANDOMSOURCE.nextInt(CANDIDATESLEN)));
}
return sb.toString();
}
}
CANDIDATES文字列は必要に応じて変更できます。3000文字は、候補の選択と文字エンコードに依存するため、必ずしも3000バイトを意味するわけではないことに注意してください。ただし、上記の候補とUTF-8エンコードを使用する場合は、問題ありません。