类型: 安全缺陷

    不应为Random.setSeed设置特定值作为参数。如果Random对象使用特定值作为种子,则Random.nextInt()以及类似方法返回的值是可以预测的。

    1. Random a = new Random();
    2. a.setSeed(111111);
    3. int i = a.nextInt();
    4. double x = a.nextDouble()
    5. Random b = new Random();
    6. b.setSeed(111111);
    7. int j = b.nextInt();
    8. double y = b.nextDouble()

    在此例中:Random对象a和b设置了相同的种子,i和j以及x和y的值都是相等的。