Как создать случайный буквенно-цифровой начальный пароль для новых пользователей?

Мы должны автоматически импортировать большой список пользователей с некоторыми данными в работающую систему. Для начального пароля я хочу обновить список (формат csv на данный момент) случайным буквенно-цифровым ключом (8 цифр).

При вставке с помощью специальной процедуры (для которой требуется файл csv) пароль (в данном случае буквенно-цифровой ключ) сохраняется в виде хэша md5.

то есть я генерирую случайный буквенно-цифровой ключ:

H2A5D39A -> MD5: 1642fccf791f15d137cf31282af79752

Таким образом, я хочу создать список, в котором аутентифицированные пользователи могут запрашивать у меня свой первоначальный пароль (буквенно-цифровой ключ).

У вас есть лучшая идея для «секретного» начального пароля?

Как бы вы создали буквенно-цифровой ключ в Perl?

P.S.: «Рабочая система», не запрограммированная нами, позволяет использовать только буквенно-цифровые пароли (без специальных символов,...)


person Xn0vv3r    schedule 29.04.2009    source источник


Ответы (5)


Как бы вы создали буквенно-цифровой ключ в Perl?

join'', map +(0..9,'a'..'z','A'..'Z')[rand(10+26*2)], 1..8

person Anonymous    schedule 29.04.2009
comment
Обратите внимание на сходство между I,l и 1 и 0 и O. Это легко обработать, назначив список символов массиву, а затем выполнив: join '', map $chars[rand @chars], 1..8; - person daotoad; 30.04.2009

Я бы, вероятно, использовал pwgen. Это здорово, так как позволяет легко настраивать и имеет переключатель, чтобы не использовать неоднозначные символы (подумайте: I, l, 1, O, 0).

Например:

=> pwgen -c -n -B 8 50
shuFak9o peiCh3Oo ohPieng9 Vohh7zuu os3Theep aeV9nuo9 aexeik4B aeChoh9s
uth3eePu baePhu3o aiS3pahn iPie4itu We9zuphi xie3Chi3 yeiRoo7c fai3ITai
aCh9ohco Echuab7v Fu9ahCho Aevae4no Peethai9 AiJio3Pa aeNge9Fo baePh7Uy
Nai7shei eeMoh9en Zeibai4n eGe7yuch Jaek7nai aeZah7sh Chei4ua4 shoo9oG9
iu7Wohho aep7De4U Fong9fo3 AhneeP7U oxae7Yoh ahF4eim3 fahm9Aiw naoNg4ie
Chie4xua jix3Uvot aChei7ai diey4Shi Yur7ee4j eeJeo9ee Bou3ahmu kaeb4Cah
Eh4Eemae oD4phoo9
person Community    schedule 29.04.2009

Ответ Anonymous очень хорош, но если вам нужна случайная строка, которая соответствует некоторым правилам (например, по крайней мере, одна прописная буква, одна строчная буква и одно число), вы можете заглянуть в String::Random.

person Chas. Owens    schedule 29.04.2009

Еще один модуль, который следует рассмотреть, — это Data::Random.

person mpeters    schedule 29.04.2009

Я только что завершил обзор 12 модулей CPAN, которые можно использовать для генерации случайных паролей:

http://blogs.perl.org/users/neilb/2011/08/random-password-generation.html

Вкратце: если вам нужен произносимый пароль, посмотрите Crypt::YAPassGen, в противном случае используйте Приложение::Genpass.

App::Genpass позволяет избежать путаницы и дает вам лучший контроль (и значения по умолчанию), чем Data::Random или String::Random

person Elbin    schedule 08.08.2011