Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c157c911

Von Moritz Bunkus vor fast 9 Jahren hinzugefügt

  • ID c157c911ac9175e4838990d051c594dd5eec7e21
  • Vorgänger 92deb643
  • Nachfolger 69af5044

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.

Unterschiede anzeigen:

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