我们必须自动将包含一些数据的大量用户导入到正在运行的系统中。 对于初始密码,我想用随机的字母数字键(8位数)更新列表(目前的csv格式)。
使用特殊例程(需要csv文件)插入时,密码(在本例中为字母数字键)存储为md5哈希。
即。我生成一个随机的字母数字键:
H2A5D39A -> MD5: 1642fccf791f15d137cf31282af79752
这样我想创建一个列表,经过身份验证的用户可以向我询问他们的初始密码(字母数字键)。
您对“秘密”初始密码有更好的了解吗?
如何在Perl中创建字母数字键?
P.S。:“运行系统”,不是我们编程的,只允许使用字母数字密码(没有特殊的字符,......)
答案 0 :(得分:15)
如何在Perl中创建字母数字键?
加入'',地图+(0..9,'a'..'z','A'..'Z')[rand(10 + 26 * 2)],1..8
答案 1 :(得分:6)
我可能会使用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
答案 2 :(得分:1)
Anonymous的答案非常好,但是,如果您需要符合某些规则的随机字符串(例如至少一个大写,一个小写和一个数字),您可能需要查看String::Random。
答案 3 :(得分:1)
要考虑的另一个模块是Data::Random
答案 4 :(得分:0)
我刚刚完成了对CPAN上可用于生成随机密码的12个模块的审核:
http://blogs.perl.org/users/neilb/2011/08/random-password-generation.html
简而言之:如果您想要一个可发音的密码,请查看Crypt::YAPassGen, 否则请转到App::Genpass。
App :: Genpass避免了可混淆的字符,并提供比Data :: Random或String :: Random
更好的控制(和默认值)