私はRandomStringUtils
データベースキーとして使用されるランダムIDを生成するために使用してきました:
import org.apache.commons.lang.RandomStringUtils;
public class RandomStringTest {
public static void main(final String[] args) {
for (int i = 0; i <= 10; i++) {
final String id = RandomStringUtils.random(8,
"0123456789abcdefghijklmnopqrstuvwxyz");
System.out.println(id);
}
}
}
キースペースは十分に大きいですが、
len("0123456789abcdefghijklmnopqrstuvwxyz")^8 = 2821109907456 ≃ 10^12
ランダムメカニズムは適切にシードされていますか?これを本番環境に適用する前に、キーが適切に配布されていることを知っておく必要があります。
ちなみに、テストコードは数回実行しても繰り返しは見られませんでしたが、それは確かな証拠にはほど遠いです。