获取当前日期时间作为随机数生成器种子的方法

8

最好是作为长整型。

我能找到的所有示例都是将日期/时间作为字符串获取,而不是任何标量值。 :)

3个回答

17
如果您确实希望获取当前时间的长整数值,可以使用 System.currentTimeMillis()。另外,您也可以使用 new Date().getTime()
然而,如果您将当前时间用作随机数生成器的种子(尤其是在用于加密等重要领域),这是一个非常糟糕的选择。建议您考虑使用像 /dev/urandom 这样的随机源(如果您的平台支持的话)。

14
注意,标准的 Java 随机数生成器 java.util.Random 默认会以 System.currentTimeMillis() 作为初始化值,因此如果你正在使用该生成器,则无需显式指定。 - William Pietri
1
安全绝对不重要。这只是一些问题的排序,直到此时都由某些常量完成。:P - bobber205
4
Java提供了java.security.SecureRandom,因此无需直接使用/dev/urandom。http://download.oracle.com/javase/6/docs/api/java/security/SecureRandom.html - starblue
@WilliamPietri 这是文档还是内部实现? - Ciro Santilli OurBigBook.com

1

0

要生成一个随机数,您可以使用以下代码:

var randomnumber=new Date().getUTCMilliseconds();
var rand = Math.floor((Math.random() * randomnumber) + 1); 
document.write(rand);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接