perl - 在 Perl 中生成有效的 Unix 用户名和密码

标签 perl unix passwords

为了在 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

最佳答案

用于生成密码您可以使用:

$password = `date | md5sum | fold -w 10 | head -n 1`;
$password = crypt($password,'some_string');

它实际上比 Perl 更像 Bash,但它完成了工作。

关于perl - 在 Perl 中生成有效的 Unix 用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16683222/

相关文章:

linux - 用转义序列替换控制字符和空格

unix - El-cheapo如何监视群集中的任务并在它们崩溃时重新启动( self 修复)?

sql-server - SQL Server PWDEncrypt 值比较

c# - 我可以将ASCII MD5哈希密码转换为Unicode MD5哈希密码吗?

windows - 在 Windows 下为 Perl 编译 PAR

perl - 有没有办法判断网站是否是用源代码或任何东西的 perl 构建的

linux - 如果未设置环境变量,如何记录?

c - stdin,0,STDIN 是不同的东西

security - ASP Classic用户登录系统密码安全注意事项?

linux - 如何正确运行 Perl "one liner"命令行脚本?