Revision c157c911
Von Moritz Bunkus vor fast 9 Jahren hinzugefügt
SL/Auth/DB.pm | ||
---|---|---|
38 | 38 |
|
39 | 39 |
my $stored_password = $self->{auth}->get_stored_password($login); |
40 | 40 |
|
41 |
my ($algorithm, $algorithm2); |
|
42 |
|
|
43 | 41 |
# Empty password hashes in the database mean just that -- empty |
44 | 42 |
# passwords. Hash it for easier comparison. |
45 |
$stored_password = SL::Auth::Password->hash(password => $stored_password) unless $stored_password;
|
|
46 |
($algorithm, $stored_password) = SL::Auth::Password->parse($stored_password);
|
|
47 |
($algorithm2, $password) = SL::Auth::Password->parse(SL::Auth::Password->hash(password => $password, algorithm => $algorithm, login => $login));
|
|
43 |
$stored_password = SL::Auth::Password->hash(password => $stored_password) unless $stored_password; |
|
44 |
my ($algorithm) = SL::Auth::Password->parse($stored_password);
|
|
45 |
my $hashed_password = SL::Auth::Password->hash(password => $password, algorithm => $algorithm, login => $login, stored_password => $stored_password);
|
|
48 | 46 |
|
49 | 47 |
$main::lxdebug->leave_sub(); |
50 | 48 |
|
51 |
return $password eq $stored_password ? OK : ERR_PASSWORD; |
|
49 |
return $hashed_password eq $stored_password ? OK : ERR_PASSWORD;
|
|
52 | 50 |
} |
53 | 51 |
|
54 | 52 |
sub can_change_password { |
Auch abrufbar als: Unified diff
Passwörter: Hash-Verfahren PBKDF2 unterstützen und als Standard nutzen
Der aktuelle Stand der Technik sind die SHA-*-Varianten schon lange
nicht mehr. In der Zwischenzeit wurden der PBKDF2-Mechanismus
entwickelt, um schnelles Berechnen zu erschweren. Noch neuer und in
ASICs noch schwerer umsetzbar sind BCrypt und SCrypt, für die es aber
noch keine weit verbreiteten Perl-Module gibt.