function reset()
 {
     $id = (int) str_replace(Config::get('salt'), '', Cript::decript($_GET['recuperar']));
     try {
         $d = new DateTime();
         $agora = $d->format('Ymdhi');
         # int muito longo para o windows, não da para fazer typecast
         $data = str_replace(Config::get('salt'), '', urldecode(Cript::decript($_GET['d'])));
         #meia hora de validade do email
         if ($agora - $data > 30) {
             throw new Exception('<p>Este link expirou. Solicite novamente sua senha.</p>');
             $this->go('Login', 'login');
         }
         $model = $this->model;
         $user = new $model($id);
         $senha = $this->gerarSenha();
         $user->{$this->password} = md5(Config::get('salt') . $senha);
         $user->save();
         #envia email com a nova senha
         $headers = "From: nao-responder@" . $_SERVER['HTTP_HOST'] . "\r\n";
         $headers .= "MIME-Version: 1.0\r\n";
         $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
         $subject = "Nova senha em " . $_SERVER['HTTP_HOST'];
         $message = "Olá de novo,<p>você pediu para mudar a senha da sua conta em ";
         $message .= $_SERVER['HTTP_HOST'] . ".</p>";
         $message .= "<p>Sua nova senha é:<strong>{$senha}</strong></p>";
         mail($user->{$this->email}, $subject, $message, $headers);
         new Msg('Uma nova senha foi gerada e enviada para o seu email!');
         $this->go('Login', 'login');
     } catch (Exception $exc) {
         new Msg($exc->getMessage(), 3);
         $this->go('Login', 'login');
     }
 }
 public function uncriptGetParams()
 {
     $carr = Config::get('criptedGetParamns');
     if (is_array($carr)) {
         foreach ($carr as $value) {
             if (isset($_GET[$value])) {
                 $_GET[$value] = Cript::decript($_GET[$value]);
             }
         }
     }
 }