【发布时间】:2013-05-17 00:00:40
【问题描述】:
为了在 Unix 系统上创建用户,我需要生成一个用户名和密码对,最好是一对难以猜测的(为了安全)。有谁知道使用 Perl 有什么好的方法吗?
更新
所以我把下面的一些答案结合起来,做了一些我自己的东西,这就是我最终得到的。现在这些生成的用户名和密码有点神秘,不容易记住,这正是我想要的。但是,如果您正在寻找更具可读性的生成,则必须根据自己的喜好对其进行调整。
use String::Random qw(random_regex);
use Data::Random::WordList;
my $user = random_regex('\w{3,6}\d{3,6}\w{3,7}') . time . int(rand(1000));
my $wl = new Data::Random::WordList( wordlist => '/usr/share/dict/words' );
my @rand_words = $wl->get_words(int(rand(3)) + 3);
$wl->close();
my $pass = join " ", @rand_words;
$pass .= ' ' . int(rand(1000)) . time;
my $crypt_pass = crypt($pass,'salt');
system "useradd -p $crypt_pass $user";
#you can now login with $user and $pass on your system
【问题讨论】:
-
查看stackoverflow.com/questions/6949667/… 的答案以了解限制,然后您应该能够使用随机数生成器生成所需的内容。抱歉,我的 Perl 有点生疏,但我可以尝试创建一个示例。
-
@Intermernet,谢谢!那个链接真的很有用。幸运的是我在 CentOS 6 上 :)