in reply to Create encrypted passwords

Better so: @chars=(a..z,A..Z,0..9,'.','/'); $salt=$charsrand(64).$charsrand(64); Zak

Replies are listed 'Best First'.
RE: RE: Create encrypted passwords
by ducky (Scribe) on Mar 28, 2000 at 23:34 UTC

    Better still:

    $salt = join '', ('a'..'z','A'..'Z',0..9,'.','/')[rand 64, rand 64] ;

    -Ducky

    Update: Ok, took me a year to come back and fix this, but it's fixed the way I'd do it today. =/

      That doesn't work. You're taking an array slice (incorrectly), then assigning it to a scalar variable. You want something like this:
      my @chars = ('a'..'z', 'A'..'Z', 0..9, '.', '/'); my $salt = join '', @chars[rand @chars, rand @chars];
      Note the "@" before "chars"--that denotes an array slice. And since we're taking an array slice and want to end up with a scalar, we need to do a join.
      What if you want to expand the valid characters someday?
      @chars=(a..z,A..Z,0..9,'.','/'); $salt= join '', @chars[rand(@chars), rand(@chars)];
      or even
      my $elem = @chars; $salt = join '', @chars[rand($elem), rand($elem)];
RE: RE: Create encrypted passwords
by Anonymous Monk on Mar 28, 2000 at 08:15 UTC
    Try again *sigh*...
    . . . @chars=(A..Z,a..z,0..9,'.','/'); $salt=$chars[rand(64)].$chars[rand(64)]; . . .

    Zak