bcrypt = $bcrypt; $this->helper = $helper; } /** * @inheritdoc */ public function get_prefix() { return self::PREFIX; } /** * @inheritdoc */ public function is_legacy() { return true; } /** * @inheritdoc */ public function hash($password, $user_row = '') { // Do not support hashing return false; } /** * @inheritdoc */ public function check($password, $hash, $user_row = array()) { if (empty($hash)) { return false; } else { $salt = substr($hash, 0, 29); if (strlen($salt) != 29) { return false; } // Works for standard WCF 2.x, i.e. WBB4 and similar return $hash === $this->bcrypt->hash($this->bcrypt->hash($password, $salt), $salt); } } /** * @inheritdoc */ public function get_settings_only($hash, $full = false) { return false; } }