public function login(array $dados, Sessao $s) { extract($dados); $repository = $this->em->getRepository('Models\\Usuario'); $u = $repository->findBy(["email" => $email]); $user = $u[0]; $k = base64_decode($user->getCadkey()); $iv = base64_decode($user->getCadiv()); $pass = stringToHex(mcrypt_encrypt(MCRYPT_3DES, $k, $senha, MCRYPT_MODE_CBC, $iv)); if (!$user instanceof Usuario) { echo "Email não encontrado"; } elseif ($user->getSenha() !== $pass) { echo "Senha incorreta."; } elseif ($user->getVerificado() === 0) { echo "Seu email ainda não foi validado."; } else { $udata["id"] = $user->getUsId(); $udata["apelido"] = $user->getApelido(); $udata["nome"] = $user->getNome() . " " . $user->getSobrenome(); $s->set("usuario", $udata); $mc = new ControleMensagem($this->em); $msg = new Mensagem(); $mc->enviar($msg, $user, "Entrou no chat"); return true; } }
private function encodeEmail($matches) { if ($this->mode == 'native') { $iv_size = mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $str = $matches[1] . '@' . $matches[2]; $e = mcrypt_encrypt(MCRYPT_TRIPLEDES, $this->_em_key, $str, MCRYPT_MODE_CBC, $iv); return 'href="#send_email" rev="em_' . strlen($str) . '_' . substr(Utils::stringToHex($e), 2) . '_' . substr(Utils::stringToHex($iv), 2) . '" class="em_encrypted_native" '; } if ($this->mode == 'file') { $enc = substr(stringToHex(des($this->_em_key, $matches[1] . '@' . $matches[2], 1, 0, null)), 2); return 'href="#send_email" rev="em_' . $enc . '" class="em_encrypted_file" '; } }
public function listar() { $dql = 'SELECT m, u.apelido FROM Models\\Mensagem m ' . 'JOIN m.usuario u ORDER BY m.dataTs DESC'; $messages = $this->em->createQuery($dql)->setMaxResults(10)->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); $s = Container::getSession(); $k = $s->get("key"); $iv = $s->get("iv"); foreach ($messages as $msg) { $encrypted = mcrypt_encrypt(MCRYPT_3DES, safeHexToString($k), trim($msg[0]["conteudo"]), MCRYPT_MODE_CBC, safeHexToString($iv)); $item = ["nick" => trim($msg["apelido"]), "mensagem" => stringToHex($encrypted), "hora" => $msg[0]["dataTs"]->format('d/m/y H:i:s')]; $resp[] = $item; } echo json_encode($resp, JSON_UNESCAPED_UNICODE); return ""; }
public function __construct() { $myRouter = Container::getRouter(); $mySession = Container::getSession(); // Obtendo uma chave para a sessão atual. $k = stringToHex(Container::getRandomCryptoKey()); if (!$mySession->existe("key")) { $mySession->set("key", $k); } // Obtendo um vetor de inicialização para a sessão atual. $iv = stringToHex(Container::getRandomCryptoIv()); if (!$mySession->existe("iv")) { $mySession->set("iv", $iv); } $this->pageDefault($myRouter); $this->pageChat($myRouter); $this->postCadUser($myRouter); $this->postLoginUser($myRouter); $this->getMensagens($myRouter); $this->postEnviarMensagem($myRouter); $this->postLoguot($myRouter); $this->getCryptoKeySessao($myRouter); $this->getCryptoIvSessao($myRouter); }