summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2014-05-14 05:13:40 (GMT)
committerRaymond Hettinger <python@rcn.com>2014-05-14 05:13:40 (GMT)
commit23042cda40bdab21db36a92d5d2655046207f947 (patch)
treeef81353c09168980500d5d4d67590131280657e9
parent2f46a0e8bef2e0a29e032ef805e9a95924af00a7 (diff)
downloadcpython-23042cda40bdab21db36a92d5d2655046207f947.zip
cpython-23042cda40bdab21db36a92d5d2655046207f947.tar.gz
cpython-23042cda40bdab21db36a92d5d2655046207f947.tar.bz2
Issue #21470: Do a better job seeding the random number generator
to fully cover its state space.
-rw-r--r--Lib/random.py4
-rw-r--r--Misc/NEWS3
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/random.py b/Lib/random.py
index 808175a..174e755a 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -105,7 +105,9 @@ class Random(_random.Random):
if a is None:
try:
- a = int.from_bytes(_urandom(32), 'big')
+ # Seed with enough bytes to span the 19937 bit
+ # state space for the Mersenne Twister
+ a = int.from_bytes(_urandom(2500), 'big')
except NotImplementedError:
import time
a = int(time.time() * 256) # use fractional seconds
diff --git a/Misc/NEWS b/Misc/NEWS
index f85155e..eff6573 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -26,6 +26,9 @@ Library
- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
flush() on the underlying binary stream. Patch by akira.
+- Issue #21470: Do a better job seeding the random number generator by
+ using enough bytes to span the full state space of the Mersenne Twister.
+
- Issue #21398: Fix an unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.