12. Gerando senhas para o CVS

O script perl abaixo irá gerar uma senha padrão Unix para se inserir no arquivo $CVSROOT/CVSROOT/passwd, para garantir o acesso dos usuários.

Atenção

Lembre-se: use sempre uma senha diferente da sua senha pessoal para e-mails e acesso à(s) máquina(s) de trabalho.

    #!/usr/bin/perl
    # Make Password v1.0 - By Daniel Lafraia (lafraia@iron.com.br)
    # 14/10/97 - Full Release
    # 03/02/2000 - Corrigidos "bugs" de segurança e traduzido. 
    #           <godoy@conectiva.com.br> e <vfarias@conectiva.com.br>.
    
     my $pass = $ARGV[0];
     if (!$pass) { $pass = prompt('Digite a senha'); }
     srand time ^ $$;
     @salt = ('A'..'Z',  'a'..'z',  '0'..'9',  '.',  '/');
     $pass = crypt ($pass, $salt[rand scalar @salt] . $salt[rand scalar @salt]);
     print "Senha criptografada: $pass\n";
    
     sub prompt {
         my ($quest)=@_;
         print "$quest: ";
         my $res = <STDIN>;
         chomp $res;
         return $res;
     }
        

Seguem dois exemplos de uso:

    $ faz-senha
    Digite a senha: senha
    Senha criptografada: ASpDgKnnG/oU.
    $

    $ faz-senha senha
    Senha criptografada: I3o4UCHjMbFXY
    $