<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários sobre: Links encriptados no PHP</title>
	<atom:link href="http://ferrari.eti.br/links-encriptados-no-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ferrari.eti.br/links-encriptados-no-php/</link>
	<description>php, python, xhtml, html5, css, javascript, jquery, webstandards, linux, nginx</description>
	<lastBuildDate>Fri, 20 Apr 2012 10:39:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Por: programa inventario</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-214</link>
		<dc:creator>programa inventario</dc:creator>
		<pubDate>Thu, 17 Nov 2011 15:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-214</guid>
		<description>&lt;strong&gt;inventario con codigo de barras...&lt;/strong&gt;

[...]Links encriptados no PHP &#187; Carlos André Ferrari[...]...</description>
		<content:encoded><![CDATA[<p><strong>inventario con codigo de barras&#8230;</strong></p>
<p>[...]Links encriptados no PHP &raquo; Carlos André Ferrari[...]&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: senuke x crack</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-206</link>
		<dc:creator>senuke x crack</dc:creator>
		<pubDate>Fri, 21 Oct 2011 14:45:28 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-206</guid>
		<description>&lt;strong&gt;senuke x crack...&lt;/strong&gt;

[...]Links encriptados no PHP &#187; Carlos André Ferrari[...]...</description>
		<content:encoded><![CDATA[<p><strong>senuke x crack&#8230;</strong></p>
<p>[...]Links encriptados no PHP &raquo; Carlos André Ferrari[...]&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Gebze Motorlu kurye</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-205</link>
		<dc:creator>Gebze Motorlu kurye</dc:creator>
		<pubDate>Sun, 16 Oct 2011 12:39:33 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-205</guid>
		<description>&lt;strong&gt;Gebze Motorlu kurye...&lt;/strong&gt;

[...]Links encriptados no PHP &#187; Carlos André Ferrari[...]...</description>
		<content:encoded><![CDATA[<p><strong>Gebze Motorlu kurye&#8230;</strong></p>
<p>[...]Links encriptados no PHP &raquo; Carlos André Ferrari[...]&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: making money product reviews</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-204</link>
		<dc:creator>making money product reviews</dc:creator>
		<pubDate>Tue, 11 Oct 2011 21:19:17 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-204</guid>
		<description>&lt;strong&gt;making money product reviews...&lt;/strong&gt;

[...]Links encriptados no PHP &#187; Carlos André Ferrari[...]...</description>
		<content:encoded><![CDATA[<p><strong>making money product reviews&#8230;</strong></p>
<p>[...]Links encriptados no PHP &raquo; Carlos André Ferrari[...]&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Room Rental Agreement</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-201</link>
		<dc:creator>Room Rental Agreement</dc:creator>
		<pubDate>Sun, 25 Sep 2011 13:24:01 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-201</guid>
		<description>&lt;strong&gt;Room Rental Agreement...&lt;/strong&gt;

[...]Links encriptados no PHP &#187; Carlos André Ferrari[...]...</description>
		<content:encoded><![CDATA[<p><strong>Room Rental Agreement&#8230;</strong></p>
<p>[...]Links encriptados no PHP &raquo; Carlos André Ferrari[...]&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: fredy</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-196</link>
		<dc:creator>fredy</dc:creator>
		<pubDate>Fri, 02 Sep 2011 03:34:55 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-196</guid>
		<description>Amigo dá pra colocar o link http://ferrari.eti.br/exemplos/fw1  no ar para eu poder ver o funcionamento, fiz tudo aq mas nao deu certo. Abçs</description>
		<content:encoded><![CDATA[<p>Amigo dá pra colocar o link <a href="http://ferrari.eti.br/exemplos/fw1" rel="nofollow">http://ferrari.eti.br/exemplos/fw1</a>  no ar para eu poder ver o funcionamento, fiz tudo aq mas nao deu certo. Abçs</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: marlon fonseca de oliveira</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-176</link>
		<dc:creator>marlon fonseca de oliveira</dc:creator>
		<pubDate>Wed, 08 Jun 2011 23:55:03 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-176</guid>
		<description>como eu faço para descriptografar a url, tipo ela voltar a ser &quot;arquivo.php&quot;? na hora de dar manutenção ao site ?

antonio</description>
		<content:encoded><![CDATA[<p>como eu faço para descriptografar a url, tipo ela voltar a ser &#8220;arquivo.php&#8221;? na hora de dar manutenção ao site ?</p>
<p>antonio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: JeffBackboy</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-161</link>
		<dc:creator>JeffBackboy</dc:creator>
		<pubDate>Sat, 09 Oct 2010 14:01:01 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-161</guid>
		<description>A Url http://ferrari.eti.br/exemplos/fw1 não está sendo encontrada</description>
		<content:encoded><![CDATA[<p>A Url <a href="http://ferrari.eti.br/exemplos/fw1" rel="nofollow">http://ferrari.eti.br/exemplos/fw1</a> não está sendo encontrada</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: André Caldas</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-9</link>
		<dc:creator>André Caldas</dc:creator>
		<pubDate>Wed, 15 Apr 2009 02:58:32 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-9</guid>
		<description>Oops... correção: o que é seguro é o passo 1.</description>
		<content:encoded><![CDATA[<p>Oops&#8230; correção: o que é seguro é o passo 1.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: André Caldas</title>
		<link>http://ferrari.eti.br/links-encriptados-no-php/comment-page-1/#comment-8</link>
		<dc:creator>André Caldas</dc:creator>
		<pubDate>Wed, 15 Apr 2009 02:39:09 +0000</pubDate>
		<guid isPermaLink="false">http://ferrari.eti.br/?p=11#comment-8</guid>
		<description>Oi, Carlos!

Eu não havia reparado que o seu esquema na verdade possui duas etapas.
1. É calculado um &quot;hash&quot; que verifica a integridade do query todo.
2. É calculada uma chave para o XOR para criptografar a URL.

Eu estava me referindo apenas à segunda etapa. A segunda etapa é meramente obscuridade. É bastante fácil de quebrar. O que é &quot;seguro&quot; aqui é o passo 2, o &quot;checksum&quot;. Que é na verdade o que eu estava sugerindo no primeiro post, sem ter atentado para o fato de que você já tinha feito. Desculpe pelo mal entendido.

De qualquer forma, queria ainda sugerir umas coisas:
* Não economize com substr(crypt(json_encode($p), Link::$chave), 0, 5).
** Utilize: crypt(json_encode($p), Link::$chave).
** Justificativa: é difícil embasar a decisão &quot;cinco é suficiente&quot; com algum argumento científico...

* Não utilize uniqid() quando o que você quer é um valor aleatório (difícil de prever).
** uniqid() é para quando você quer um valor único, mas não necessariamente difícil de prever! Não é isso o que você quer. O uniqid() é fácil de prever. Se o sistema em algum outro momento deixar o usuário saber o valor de um uniqid(), os outros serão muito parecidos e portanto fáceis de prever.
** O login (id) é único. A senha não precisa ser única! ;-)

* A menos que seja uma &quot;one time key&quot;, nunca use XOR pra criptografar nada.
** Sei que esse post é didático. :-)
** O problema é que se K é a chave, e você sabe A e B, então A xor K = B ---&gt; B xor A = K!! Demonstre. ;-)

No mais, seu código (não só esse) é muito bom. :-)


Continue firme, e parabéns pelo blog,
André Caldas.</description>
		<content:encoded><![CDATA[<p>Oi, Carlos!</p>
<p>Eu não havia reparado que o seu esquema na verdade possui duas etapas.<br />
1. É calculado um &#8220;hash&#8221; que verifica a integridade do query todo.<br />
2. É calculada uma chave para o XOR para criptografar a URL.</p>
<p>Eu estava me referindo apenas à segunda etapa. A segunda etapa é meramente obscuridade. É bastante fácil de quebrar. O que é &#8220;seguro&#8221; aqui é o passo 2, o &#8220;checksum&#8221;. Que é na verdade o que eu estava sugerindo no primeiro post, sem ter atentado para o fato de que você já tinha feito. Desculpe pelo mal entendido.</p>
<p>De qualquer forma, queria ainda sugerir umas coisas:<br />
* Não economize com substr(crypt(json_encode($p), Link::$chave), 0, 5).<br />
** Utilize: crypt(json_encode($p), Link::$chave).<br />
** Justificativa: é difícil embasar a decisão &#8220;cinco é suficiente&#8221; com algum argumento científico&#8230;</p>
<p>* Não utilize uniqid() quando o que você quer é um valor aleatório (difícil de prever).<br />
** uniqid() é para quando você quer um valor único, mas não necessariamente difícil de prever! Não é isso o que você quer. O uniqid() é fácil de prever. Se o sistema em algum outro momento deixar o usuário saber o valor de um uniqid(), os outros serão muito parecidos e portanto fáceis de prever.<br />
** O login (id) é único. A senha não precisa ser única! <img src='http://ferrari.eti.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>* A menos que seja uma &#8220;one time key&#8221;, nunca use XOR pra criptografar nada.<br />
** Sei que esse post é didático. <img src='http://ferrari.eti.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
** O problema é que se K é a chave, e você sabe A e B, então A xor K = B &#8212;&gt; B xor A = K!! Demonstre. <img src='http://ferrari.eti.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>No mais, seu código (não só esse) é muito bom. <img src='http://ferrari.eti.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Continue firme, e parabéns pelo blog,<br />
André Caldas.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

