SHA-based subclass for random module
trevp_spam at trevp.net
Tue Mar 23 03:27:08 CET 2004
Paul Rubin wrote:
> trevp at trevp.net (Trevor Perrin) writes:
>>What about a subclass of Random that provides an interface to
>>platform-specific secure RNGs:
> I think it's extremely desirable and important to add such an
> interface, and maybe it should go in the random module, but it
> shouldn't be a subclass of Random. Random is intended to be a
> deterministic generator.
I see that seed(), getstate() and setstate() imply determinism.
Aside from those, the nice thing about subclassing Random is you'd only
have to implement random() and getrandbits() and you'd get randrange(),
randint(), choice(), shuffle(), and sample() for free. So it might be
worth it, even if you have to raise NotImplementedError for a few methods.
Actually, Random could be made even easier to subclass. getrandbits
(which is new in 2.4) returns a long. It would be better for us if
there was a getrandstring() function that an underlying generator could
implement. This would also be a helpful addition to the API, at least
for cryptographic uses.
More information about the Python-list