in reply to What's the idea of different salts in crypt()?
Right. Knowing the salt is half the battle in cracking the password.
In addition to the suggestions of our fellow monks, I can add two more points.
Use a random salt and store the password in such a way where it will be extremely difficult for someone to obtain. Such as a configuration file only readable by the application itself. Some example code follows:
use strict; my $pass; $| = 1; print "password: "; chomp($pass = <STDIN>); print crypt_pass($pass), "\n"; exit; sub crypt_pass { my $p = shift; return unless $p; my $salt = chr(65+rand(27)).chr(65+rand(27)); return crypt($p, $salt); }
Another thing you can do is use the first two characters of the password as the salt, then strip those two characters off before you store it.
use strict; my $pass; $| = 1; print "password: "; chomp($pass = <STDIN>); print crypt_pass($pass), "\n"; exit; sub crypt_pass { my $p = shift; return unless $p; crypt($p, $p) =~ /..(.*)/; my $cpass = $1; return $cpass; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: What's the idea of different salts in crypt()?
by derby (Abbot) on Sep 20, 2001 at 16:59 UTC | |
|
Re: Re: What's the idea of different salts in crypt()?
by blakem (Monsignor) on Sep 20, 2001 at 11:03 UTC | |
by mr_mischief (Monsignor) on Sep 20, 2001 at 19:36 UTC | |
by blakem (Monsignor) on Sep 21, 2001 at 03:30 UTC | |
by mr_mischief (Monsignor) on Sep 22, 2001 at 01:46 UTC |