<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">Em 15 de setembro de 2013 21:28, Leonardo Ruoso <span dir="ltr"><<a href="mailto:leonardo@ruoso.com" target="_blank">leonardo@ruoso.com</a>></span> escreveu:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Deve haver alguma aplicação onde o benefício de guardar o valor do md5 de uma string como BINARY/BYTEA em oposição ao próprio valor da string e deixar o índice BTREE fazer seu trabalho compensará → provavelmente é a mesma aplicação que vai notar benefício real em adotar largura fixa em detrimento de XML para intercâmbio de dados. Felizmente eu ainda não tive de colocar minhas mãos em nenhuma delas. Infelizmente eu já tive de lidar com CNAB e com chaves artificiais onde cabiam chaves naturais suficientes na minha vida…</div>


<div><br></div><div>Acabamos de modelar aqui um sistema, em que algumas tabelas contém milhões de registros…</div><div><br></div><div>Adivinha qual vai ser a chave das regiões brasileiras (hierarquia desde país até setor censitário passando por região, uf, meso, micro, municipio, distrito e subdistrito)? </div>


<div><br></div><div>br.se.sp.regiao-metropolitana-de-sao-paulo.sao-paulo.sao-paulo.moema-indianapolis.moema.av-indianapolis-2000-2200</div><div><br></div><div>Servidor com 32 cores e 64GB de RAM?</div><div><br></div><div>


R$ 10 mil reais por ano</div><div><br></div><div>Custo de manutenção de sistemas?</div><div><br></div><div>Incalculável!</div><div><br></div><div>Galera:</div><div><br></div><div>Chave natural é tudo de bom!</div><div>Chave composto é lindo e funciona!</div>


<div><br></div><div>Não se esqueça que dizer para os usuários que um email já está cadastrado permite atacar sua base de usuários :)</div><div><br></div></div></blockquote><div><br></div><div>Acho esta afirmação parcialmente verdadeira. Conhecer que existe um email na tua base é inevitável quando vc a está utilizando como uma chave para o sistema, e nem preciso ser um hacker para isto.</div>

<div><br></div><div>Qualquer um pode saber quais são os emails que estão cadastrado no Amazon.com e no Twitter, por exemplo, mas isto não é considerado uma falha de segurança da Amazon.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">
Em 15 de setembro de 2013 17:17, Lucas Mateus <span dir="ltr"><<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>></span> escreveu:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
        É disso que to falando, usar o MD5 mesmo (binário) e não md5 em hexadecimal, e acho sim muito comum emails com mais de 16 bytes.<br>
<br>
        E se executar a query já passado o email com o md5, sem precisar usar a função do BD é ainda melhor, ja que o BD faz o hex por conta própria.<br>
<br>
<br>
mysql> show create table users_2;<br>
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+<br>
| Table   | Create Table                                                                                                                                                                                              |<br>
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+<br>
| users_2 | CREATE TABLE `users_2` (<br>
  `email` varchar(60) default NULL,<br>
  `email_md5` binary(16) default NULL,<br>
  KEY `idx_email` (`email`),<br>
  KEY `idx_email_md5` (`email_md5`)<br>
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |<br>
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+<br>
1 row in set (0.00 sec)<br>
<br>
<br>
mysql> select email from users_2 where email = '<a href="mailto:teste967847@domain.com" target="_blank">teste967847@domain.com</a>';<br>
+------------------------+<br>
| email                  |<br>
+------------------------+<br>
| <a href="mailto:teste967847@domain.com" target="_blank">teste967847@domain.com</a> |<br>
+------------------------+<br>
1 row in set (0.21 sec)<br>
<br>
mysql> select email from users_2 where email_md5 = unhex(md5('<a href="mailto:teste967848@domain.com" target="_blank">teste967848@domain.com</a>'));<br>
+------------------------+<br>
| email                  |<br>
+------------------------+<br>
| <a href="mailto:teste967848@domain.com" target="_blank">teste967848@domain.com</a> |<br>
+------------------------+<br>
1 row in set (0.00 sec)<br>
<br>
<br>
Em 15/09/2013, às 16:44, Eden Cardim <<a href="mailto:eden@insoli.de" target="_blank">eden@insoli.de</a>> escreveu:<br>
<div><div><br>
>>>>>> "Lucas" == Lucas Mateus <<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>> writes:<br>
><br>
>    Lucas>     Show Eden, mas seu teste não tem absolutamente nada a<br>
>    Lucas> ver com o que eu disse =)<br>
><br>
> A única diferença do que você mostrou é que no meu caso, o campo<br>
> email_md5 não existe porque não precisa, o índice resolve. E eu<br>
> coloquei valores md5 no campo email pra ter alguma aleatoriedade no<br>
> teste.<br>
><br>
> --<br>
> Eden Cardim -- Insolide Soluções de TI Ltda.<br>
> <a href="tel:%2B55%2011%209644%208225" value="+551196448225" target="_blank">+55 11 9644 8225</a><br>
> <a href="http://insoli.de" target="_blank">http://insoli.de</a><br>
> =begin disclaimer<br>
>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
<br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Leonardo Ruoso<div>Journalist, Perl developer and business consultant<br><div>Media, UFC/2006; Telecom, IFCE/1998</div>

</div>
</font></span></div></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa
</div></div>