[ https://issues.apache.org/jira/browse/RNG-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gilles updated RNG-59: ---------------------- Description: {{SeedFactory}} will produce the same seed when several instances of the same program are launched in rapid successions. In the _static_ block of {{SeedFactory}}, an initial "random" seed is generated using {{System.currentTimeMillis()}}. I think that it should be replaced by retrieving data from a {{SecureRandom}} instance. The drawback is that instantiating such an object is necessary slower. However if it is the way to go (to ensure different initial seeds in parallel runs of a program), the question is whether to use only {{SecureRandom}} to create the (relatively large) state of the RNG used by the {{SeedFactory}} or to use it only to generate 8 bytes (and proceed with the rest of the _static_ block as it is now). I'm planning to follow the advice [here|https://tersesystems.com/blog/2015/12/17/the-right-way-to-use-securerandom/], i.e. fill the whole state with the system's default RNG. was: {{SeedFactory}} will produce the same seed when several instances of the same program are launched in rapid successions. In the {{static}} block of {{SeedFactory}}, an initial "random" seed is generated using {{System.currentTimeMillis()}}. I think that it should be replaced by retrieving data from a {{SecureRandom}} instance. The drawback is that instantiating such an object is necessary slower. However if it is the way to go (to ensure different initial seeds in parallel runs of a program), the question is whether to use only {{SecureRandom}} to create the (relatively large) state of the RNG used by the {{SeedFactory}} or to use it only to generate 8 bytes (and proceed with the rest of the _static_ block as it is now). > More robust "SeedFactory" > ------------------------- > > Key: RNG-59 > URL: https://issues.apache.org/jira/browse/RNG-59 > Project: Commons RNG > Issue Type: Improvement > Components: simple > Affects Versions: 1.0, 1.1 > Reporter: Gilles > Priority: Major > Fix For: 1.2 > > > {{SeedFactory}} will produce the same seed when several instances of the same > program are launched in rapid successions. > In the _static_ block of {{SeedFactory}}, an initial "random" seed is > generated using {{System.currentTimeMillis()}}. > I think that it should be replaced by retrieving data from a {{SecureRandom}} > instance. > The drawback is that instantiating such an object is necessary slower. > However if it is the way to go (to ensure different initial seeds in parallel > runs of a program), the question is whether to use only {{SecureRandom}} to > create the (relatively large) state of the RNG used by the {{SeedFactory}} or > to use it only to generate 8 bytes (and proceed with the rest of the _static_ > block as it is now). > I'm planning to follow the advice > [here|https://tersesystems.com/blog/2015/12/17/the-right-way-to-use-securerandom/], > i.e. fill the whole state with the system's default RNG. -- This message was sent by Atlassian JIRA (v7.6.3#76005)