[ticket/12352] Do not check hashes that don't have the necessary length

This should significantly reduce the time spent on checking hashes of
passwords that should be converted.

PHPBB3-12352
This commit is contained in:
Marc Alexander 2014-06-02 10:14:26 +02:00
parent 94b2b64ca1
commit ac311e1b39
7 changed files with 7 additions and 7 deletions

View file

@ -65,7 +65,7 @@ class bcrypt_wcf2 extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
if (empty($hash)) if (empty($hash) || strlen($hash) != 60)
{ {
return false; return false;
} }

View file

@ -47,7 +47,7 @@ class md5_mybb extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
if (empty($hash) || !isset($user_row['user_passwd_salt'])) if (empty($hash) || strlen($hash) != 32 || !isset($user_row['user_passwd_salt']))
{ {
return false; return false;
} }

View file

@ -47,7 +47,7 @@ class md5_vb extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
if (empty($hash) || !isset($user_row['user_passwd_salt'])) if (empty($hash) || strlen($hash) != 32 || !isset($user_row['user_passwd_salt']))
{ {
return false; return false;
} }

View file

@ -47,6 +47,6 @@ class sha1 extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
return $hash === sha1($password); return (strlen($hash) == 40) ? $hash === sha1($password) : false;
} }
} }

View file

@ -46,6 +46,6 @@ class sha1_smf extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
return $hash === $this->hash($password, $user_row); return (strlen($hash) == 40) ? $hash === $this->hash($password, $user_row) : false;
} }
} }

View file

@ -47,7 +47,7 @@ class sha1_wcf1 extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
if (empty($hash) || !isset($user_row['user_passwd_salt'])) if (empty($hash) || strlen($hash) != 40 || !isset($user_row['user_passwd_salt']))
{ {
return false; return false;
} }

View file

@ -47,7 +47,7 @@ class sha_xf1 extends base
*/ */
public function check($password, $hash, $user_row = array()) public function check($password, $hash, $user_row = array())
{ {
if (empty($hash) || !isset($user_row['user_passwd_salt'])) if (empty($hash) || (strlen($hash) != 40 && strlen($hash) != 64) || !isset($user_row['user_passwd_salt']))
{ {
return false; return false;
} }