/** * Computes salted password hash. * @param string * @return string */ protected static function hashPassword($password, $options = NULL) { if ($password === XApp_Utils_Strings::upper($password)) { // perhaps caps lock is on $password = XApp_Utils_Strings::lower($password); } $password = substr($password, 0, self::PASSWORD_MAX_LENGTH); $options = $options ?: implode('$', array('algo' => '$2a', 'cost' => '07', 'salt' => XApp_Utils_Strings::random(22))); return crypt($password, $options); }