【问题标题】:How should I generate a random alphanumeric initial password for new users?我应该如何为新用户生成一个随机的字母数字初始密码?
【发布时间】:2010-10-22 12:41:18
【问题描述】:

我们必须自动将包含一些数据的大量用户导入到正在运行的系统中。 对于初始密码,我想使用随机字母数字密钥(8 位)更新列表(目前为 csv 格式)。

当使用特殊例程(需要 csv 文件)插入密码时,密码(在本例中为字母数字键)存储为 md5 哈希。

即我生成一个随机的字母数字密钥:

H2A5D39A -> MD5: 1642fccf791f15d137cf31282af79752

这样我想创建一个列表,经过身份验证的用户可以向我询问他们的初始密码(字母数字密钥)。

您对“秘密”初始密码有更好的想法吗?

如何在 Perl 中创建字母数字键?

P.S.:“运行系统”,不是我们编程的,只允许字母数字密码(没有特殊字符,...)

【问题讨论】:

    标签: perl passwords alphanumeric


    【解决方案1】:

    如何在 Perl 中创建字母数字键?

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

    【讨论】:

    • 注意 I、l 和 1 以及 0 和 O 之间的相似之处。通过将 char 列表分配给数组,然后执行以下操作即可轻松处理:join '', map $chars[rand @chars ], 1..8;
    【解决方案2】:

    我可能会使用 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
    

    【讨论】:

      【解决方案3】:

      匿名者的回答很好,但是,如果你需要一个符合某些规则的随机字符串(比如至少一个大写、一个小写和一个数字),你可能需要查看String::Random

      【讨论】:

        【解决方案4】:

        另一个需要考虑的模块是Data::Random

        【讨论】:

          【解决方案5】:

          我刚刚完成了对 CPAN 上可用于生成随机密码的 12 个模块的审查:

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

          简而言之:如果您想要一个可发音的密码,请查看Crypt::YAPassGen, 否则去App::Genpass

          App::Genpass 避免了易混淆的字符,并为您提供比 Data::Random 或 String::Random 更好的控制(和默认值)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-07-26
            • 1970-01-01
            • 2011-01-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多