is_supported()) ? '$2a$' : $this->get_prefix(); if ($salt == '') { $salt = $prefix . '10$' . $this->get_random_salt(); } $hash = crypt($password, $salt); return $hash; } /** * @inheritdoc */ public function check($password, $hash) { $salt = substr($hash, strpos($hash, '$', 4) + 1, 22); var_dump('bcrypt salt: ' . $salt . ' with length ' . strlen($salt)); if (strlen($salt) != 22) { return false; } if ($hash == $this->hash($password, $salt)) { return true; } return false; } /** * Get a random salt value with a length of 22 characters * * @return string Salt for password hashing */ protected function get_random_salt() { return substr(str_replace('+', '.', bin2hex(openssl_random_pseudo_bytes(22))), 0, 22); } }