Template language for random string generation
Devin Jeanpierre
jeanpierreda at gmail.com
Sun Aug 10 08:43:04 EDT 2014
On Fri, Aug 8, 2014 at 2:01 AM, Paul Wolf <paulwolf333 at gmail.com> wrote:
> This is a proposal with a working implementation for a random string generation template syntax for Python. `strgen` is a module for generating random strings in Python using a regex-like template language. Example:
>
> >>> from strgen import StringGenerator as SG
> >>> SG("[\l\d]{8:15}&[\d]&[\p]").render()
> u'F0vghTjKalf4^mGLk'
Why aren't you using regular expressions? I am all for conciseness,
but using an existing format is so helpful...
Unfortunately, the equivalent regexp probably looks like
r'(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])[a-zA-Z0-9]{8:15}'
(I've been working on this kind of thing with regexps, but it's still
incomplete.)
> * Uses SystemRandom class (if available, or falls back to Random)
This sounds cryptographically weak. Isn't the normal thing to do to
use a cryptographic hash function to generate a pseudorandom sequence?
Someone should write a cryptographically secure pseudorandom number
generator library for Python. :(
(I think OpenSSL comes with one, but then you can't choose the seed.)
-- Devin
More information about the Python-list
mailing list