Skip to content

Commit

Permalink
import secrets module in secrets recipes (#6705)
Browse files Browse the repository at this point in the history
  • Loading branch information
dchimeno authored and stevendaprano committed May 19, 2018
1 parent f65e31f commit cf8abcb
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions Doc/library/secrets.rst
Expand Up @@ -145,8 +145,9 @@ Generate an eight-character alphanumeric password:
.. testcode::

import string
import secrets
alphabet = string.ascii_letters + string.digits
password = ''.join(choice(alphabet) for i in range(8))
password = ''.join(secrets.choice(alphabet) for i in range(8))


.. note::
Expand All @@ -164,9 +165,10 @@ three digits:
.. testcode::

import string
import secrets
alphabet = string.ascii_letters + string.digits
while True:
password = ''.join(choice(alphabet) for i in range(10))
password = ''.join(secrets.choice(alphabet) for i in range(10))
if (any(c.islower() for c in password)
and any(c.isupper() for c in password)
and sum(c.isdigit() for c in password) >= 3):
Expand All @@ -177,19 +179,21 @@ Generate an `XKCD-style passphrase <https://xkcd.com/936/>`_:

.. testcode::

import secrets
# On standard Linux systems, use a convenient dictionary file.
# Other platforms may need to provide their own word-list.
with open('/usr/share/dict/words') as f:
words = [word.strip() for word in f]
password = ' '.join(choice(words) for i in range(4))
password = ' '.join(secrets.choice(words) for i in range(4))


Generate a hard-to-guess temporary URL containing a security token
suitable for password recovery applications:

.. testcode::

url = 'https://mydomain.com/reset=' + token_urlsafe()
import secrets
url = 'https://mydomain.com/reset=' + secrets.token_urlsafe()



Expand Down

0 comments on commit cf8abcb

Please sign in to comment.