225 |
|
private static final AtomicLong defaultGen = new AtomicLong(initialSeed()); |
226 |
|
|
227 |
|
private static long initialSeed() { |
228 |
< |
String pp = java.security.AccessController.doPrivileged( |
229 |
< |
new sun.security.action.GetPropertyAction( |
230 |
< |
"java.util.secureRandomSeed")); |
231 |
< |
if (pp != null && pp.equalsIgnoreCase("true")) { |
228 |
> |
if (java.security.AccessController.doPrivileged( |
229 |
> |
new java.security.PrivilegedAction<Boolean>() { |
230 |
> |
public Boolean run() { |
231 |
> |
return Boolean.getBoolean("java.util.secureRandomSeed"); |
232 |
> |
}})) { |
233 |
|
byte[] seedBytes = java.security.SecureRandom.getSeed(8); |
234 |
< |
long s = (long)(seedBytes[0]) & 0xffL; |
234 |
> |
long s = (long)seedBytes[0] & 0xffL; |
235 |
|
for (int i = 1; i < 8; ++i) |
236 |
< |
s = (s << 8) | ((long)(seedBytes[i]) & 0xffL); |
236 |
> |
s = (s << 8) | ((long)seedBytes[i] & 0xffL); |
237 |
|
return s; |
238 |
|
} |
239 |
|
return (mix64(System.currentTimeMillis()) ^ |