07 декабря 2009

Python: генерация паролей

Возникла необходимость генерирования случайных паролей из 10 строчных латинских букв и цифр. Задача неожиданно решилась в одну строчку на Python (не считая импортов):

import random, string
pwd = ''.join([random.choice(string.ascii_letters + string.digits) for x in range(10)])
string.ascii_letters и string.digits — это строковые константы из модуля string, for x in range(10) создает список 10 случайно выбранных из них элементов (random.choice), а join соответствеено их собирает в строку.

Естественно, для реальных приложений, генерация паролей на основании стандартного генератора случайных чисел недопустима!!!

1 комментарий:

Анонимный комментирует...

короче, склифософский:

pwd = ''.join(random.choice(string.ascii_letters + string.digits) for x in range(10))