Looks pretty good. Two points concern me: - Every source of non-crypto quality randoms should explicitly document that it should not be used for generating keys or other crypto purposes. There is mention that the seeding is insecure in the implementation docs but more explicit mention in the public docs is needed. (And some fool somewhere will *still* use it for crypto...)
- Additional seed material might be desirable for "seeder". I worry about how many of the actual bits are random. If no local host address is available the seed might be fairly predictable. In the murmur3 implementation I included also System.identityHashCode(String.class), System.identityHashCode(System.class), System.identityHashCode(Thread.currentThread()), Thread.currentThread().getId() and Runtime.getRuntime().freeMemory(). Mixing multiply with XOR operations also helps to spread the random bits out. Perhaps just call mix64 on each component and XOR against previous? Mike On Aug 19 2013, at 04:06 , Paul Sandoz wrote: > Hi, > > This is the patch for SplittableRandom: > > http://cr.openjdk.java.net/~psandoz/tl/JDK-8020292-SplittableRandom/webrev/ > > The algorithm remains the same as reported by Doug on the 9th August: > > http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-August/019768.html > > Paul.