<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Felipe Tonello &#187; Python</title>
	<atom:link href="http://felipetonello.com/blog/category/programacao/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://felipetonello.com/blog</link>
	<description>Compartilhe, ajude e cresça</description>
	<lastBuildDate>Thu, 29 Jul 2010 20:35:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PyConBrasil 2008 lá vou eu!</title>
		<link>http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/</link>
		<comments>http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 00:48:26 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[PyConBrasil]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/?p=146</guid>
		<description><![CDATA[Galera, é com muita alegria que estou postando novamente aqui. Primeiramente gostaria de dizer que mudei de trabalho. Estou trabalhando remotamente, em casa, para uma empresa canadense de Open Source e Linux chamada Savoir-faire Linux! Uma maravilha hehehehe Segundo, é que voltei a trabalhar com coisas que gosto, como Python, C++ e KDE4. Portanto estarei [...]]]></description>
			<content:encoded><![CDATA[<p>Galera, é com muita alegria que estou postando novamente aqui.</p>
<p>Primeiramente gostaria de dizer que mudei de trabalho. Estou trabalhando remotamente, em casa, para uma empresa canadense de Open Source e Linux chamada <a title="Savoir-faire Linux" href="http://savoirfairelinux.com">Savoir-faire Linux</a>! Uma maravilha hehehehe</p>
<p>Segundo, é que voltei a trabalhar com coisas que gosto, como Python, C++ e KDE4.</p>
<p>Portanto estarei indo para a <a title="PyConBrasil 2008" href="http://pyconbrasil.com.br/">PyConBrasil 2008</a>, que vai ser no Rio de Janeiro. <a href="http://pyconbrasil.com.br/sobre-o-evento/inscricao"><img class="alignnone size-full wp-image-147" title="PyConBrasil 2008. Inscreva-se!" src="http://felipetonello.com/blog/wp-content/uploads/2008/08/pyconbrasil4-fullparado.gif" alt="" width="468" height="60" /></a></p>
<p>Nós da GruPy-SP estamos tentando fazer algum arranjo para ir de onibus fretado e ficar num hotel por lá, vai ser super legal!</p>
<p>E você, vai?</p>
]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Você gosta do seu emprego? Em busca do emprego perfeito?</title>
		<link>http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/</link>
		<comments>http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/#comments</comments>
		<pubDate>Thu, 29 May 2008 16:18:05 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/</guid>
		<description><![CDATA[É impressionante como todo mundo que se forma em uma faculdade sai com aquela esperança de revolucionar o mundo, criar uma empresa como o Google ou até mesmo ir para lá como desenvolvedor super power em Python. É, dizem que nada é impossível mesmo. Mas até quando temos que ficar sonhando? Bom, apesar de ter [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="http://www.cheeplinux.com/images/images_big/lovelinux.jpg" alt="I Love Linux" width="114" height="108" />É impressionante como todo mundo que se forma em uma faculdade sai com aquela esperança de revolucionar o mundo, criar uma empresa como o Google ou até mesmo ir para lá como desenvolvedor super power em Python.</p>
<p>É, dizem que nada é impossível mesmo. Mas até quando temos que ficar sonhando?</p>
<p>Bom, apesar de ter menos de 2 anos de experiência eu já trabalhei em 4 empresas, desde pequenas até gigantes. Sempre tentando achar um emprego perfeito.</p>
<p>Como você define algo bom? Salário? Benefícios? Projetos? Tecnologia usada? Aprendizado?</p>
<p>Para nós que somos geeks(linuxeros) isso é mais difícil ainda! Gostamos de Python, PHP, Linux, Vim etc etc. Mas muitas vezes temos que engulir seco por trabalhar com ASP.NET (meu caso).<br />
É, estou me cansando de novo. Não gosto da environment de trabalho, do projeto e principalmente da tecnologia usada. Meu direito, certo?</p>
<p>Mas até onde compensa ficar pulando de trabalho em trabalho, tentando achar algo que você se adapte? Ou então trabalhar por conta?<br />
Muitas vezes você não pode fazer isso. Por falta de oportunidade ou &#8220;simplesmente&#8221; responsabilidades a cumprir.</p>
<p><img class="alignleft" style="float: left;" src="http://farm1.static.flickr.com/162/424322458_3fdf529875_m.jpg" alt="Python Powered" align="left" />Bom, eu já estava deixando essa coisa de ter emprego perfeito de lado. Até que me apareceu uma <a href="http://www.savoirfairelinux.com/">oportunidade para trabalhar</a> com Linux, Python, PHP, C++/Qt GTK. Tudo opensource. Parece até um sonho. Aceitei na hora!</p>
<p>Mas e você? Acha que um dia vai para ser um <a href="http://www.python.org/%7Eguido/">Guido van Rossum</a> do Google? O que faz para que isso um dia possa ser realizado? Vale a pena lutar por isso? Ou, talvez, não esquenta cabeça mais com isso?</p>
<p><em>Aqui eu dei um exemplo pessoal, mas não necessariamente você gosta de Linux.</em></p>
<p>Conte sua história <img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Resposta do desafio criptografia Blowfish</title>
		<link>http://felipetonello.com/blog/2007/11/21/resposta-do-desafio-criptografia-blowfish/</link>
		<comments>http://felipetonello.com/blog/2007/11/21/resposta-do-desafio-criptografia-blowfish/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 03:00:54 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[desafios]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/2007/11/21/resposta-do-desafio-criptografia-blowfish/</guid>
		<description><![CDATA[Já faz um tempinho que coloquei o &#8216;Desafio criptografia Blowfish&#8217; no meu blog. Só que ninguem conseguiu, ou tentou, resolver o problema. Vamos ver que é bem simples esse desafio. Primeiro coisa a fazer é ler o desafio e perceber que temos 2 coisas importantes alí: Mensagem criptografada Senha da mensagem. Feito isso já podemos [...]]]></description>
			<content:encoded><![CDATA[<p>Já faz um tempinho que coloquei o <a href="/blog/2007/08/23/desafio-criptografia-blowfish/" title="Desafio criptografia Blowfish">&#8216;Desafio criptografia Blowfish&#8217;</a> no meu blog. Só que ninguem conseguiu, ou tentou, resolver o problema.</p>
<p>Vamos ver que é bem simples esse desafio.</p>
<p>Primeiro coisa a fazer é ler o desafio e perceber que temos 2 coisas importantes alí:</p>
<ol>
<li>Mensagem criptografada</li>
<li>Senha da mensagem.</li>
</ol>
<p>Feito isso já podemos matar o problema. Como?<br />
Primeiro escolha a linguagem de programação que você quer resolver. No caso vamos utilizar <a href="http://python.org">Python</a>.<br />
Você pode baixar o <a href="/scripts/python/blowfish.txt">blowfish.py</a> aqui.</p>
<p>Se você abrir o código, pode perceber que no final do arquivo têm uns exemplos de uso. Ou simplesmente faça:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">tail</span> blowfish.py <span style="color: #660033;">-n</span> <span style="color: #000000;">20</span></pre></div></div>

<p>A saída será essa:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    key = <span style="color: #483d8b;">'This is a test key'</span>
    cipher = Blowfish <span style="color: black;">&#40;</span>key<span style="color: black;">&#41;</span>    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Testing encryption:&quot;</span>
    xl = <span style="color: #ff4500;">123456</span>
    xr = <span style="color: #ff4500;">654321</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Plain text: (%s, %s)&quot;</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>xl, xr<span style="color: black;">&#41;</span>
    cl, cr = cipher.<span style="color: black;">cipher</span> <span style="color: black;">&#40;</span>xl, xr, cipher.<span style="color: black;">ENCRYPT</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Crypted is: (%s, %s)&quot;</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>cl, cr<span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">dl</span>, dr = cipher.<span style="color: black;">cipher</span> <span style="color: black;">&#40;</span>cl, cr, cipher.<span style="color: black;">DECRYPT</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Unencrypted is: (%s, %s)&quot;</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">dl</span>, dr<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Testing buffer encrypt:&quot;</span>
    text = <span style="color: #483d8b;">'testtest'</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Text: %s&quot;</span> <span style="color: #66cc66;">%</span>text
    crypted = cipher.<span style="color: black;">encrypt</span> <span style="color: black;">&#40;</span>text<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Encrypted: %s&quot;</span> <span style="color: #66cc66;">%</span>crypted
    decrypted = cipher.<span style="color: black;">decrypt</span> <span style="color: black;">&#40;</span>crypted<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>Decrypted: %s&quot;</span> <span style="color: #66cc66;">%</span>decrypted</pre></div></div>

<p>Agora já sabemos como faz para chamar o método de criptografar e descriptografar.</p>
<p>Mas peraí, no exemplo acima o mensagem era uns números e não vários caracteres como na do nosso desafio.<br />
Aí vem a primeira pegadinha..<br />
nossa string foi convertida para codificação <a href="http://en.wikipedia.org/wiki/Base64">base 64</a>.<br />
Então teremos de converter toda a string para uma string conhecida pelo blowfish(ou não, temos que ver).</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">base64</span>
<span style="color: #dc143c;">base64</span>.<span style="color: black;">b64decode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'string_do_desafio'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Beleza, agora sabemos que está tudo ok. Temos que conhecer o Blowfish.</p>
<p>Para isso vamos dar uma pesquisada na internet.</p>
<p><strong>&#8230;10 minutos depois&#8230;</strong></p>
<p>Bom, pelo que eu <a href="http://pt.wikipedia.org/wiki/Blowfish">vi aqui na wikipedia</a> e vejo isso: <strong>A entrada para essa parte do algoritmo são 64 bits&#8230;</strong><br />
Com complexas contas chegamos que 64 bits = 8 Bytes = 8 caracteres. Para quem não entendeu ainda, fizemos 64 bits / 8 bits = 8 Bytes</p>
<p>Então quer dizer que o blowfish só recebe em blocos de 8 caracteres as entradas.. hmmmm interessante..<br />
Sabendo isso, vamos ter que separar nossa string com muitos caracteres em várias de 8 caracteres apenas.</p>
<p>Faremos isso com um for normal e vamos cortar a string em vários blocos de 8 caracteres. Mas e se o último bloco conter apenas 6 caracteres? Para termos certeza de que a string contem 8 caracteres podemos forcar com o método <strong>string.ljust(variavel, 8 )</strong></p>
<p>Não se esqueça que a senha também não deve ter menos de 8 caracteres, então está a outra dica: Usar o ljust() na senha também.</p>
<p>Depois disso é só você criar seu código. Eu criei uma classe bem simples que criptograda e descriptografa.</p>
<p>Na verdade é bem simples sim. Vou postar meu código aqui e quem quiser baixar ele fique a vontade..</p>
<p><a href="/blog/2007/08/23/desafio-criptografia-blowfish/" title="Desafio criptografia Blowfish">Tente desvendar o mistério e resolva o desafio!!!</a></p>
<p>Agora só falta postarem o resultado, ficou fácil né? hehe</p>
<p><a href="/Sistemas/Upload/arquivo.php?i=20" title="Download do cript.py">Faça download do cript.py</a></p>
<p><strong>cript.py</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Feito em 22/08/2007</span>
<span style="color: #808080; font-style: italic;">#</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">string</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">base64</span>
<span style="color: #ff7700;font-weight:bold;">import</span> blowfish
&nbsp;
__author__ = <span style="color: #483d8b;">&quot;Felipe Ferreri Tonello &lt;felipe.tonello@gmail.com&gt;&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> BFCript:
    <span style="color: #483d8b;">&quot;&quot;&quot;
Classe que usa criptografia Blowfish juntamente com encodificacao Base64
&nbsp;
uso: cript.py cript|descript 'senha' 'texto'
&nbsp;
PS: Quando for descriptografar, o texto deve estar codificado em Base64
    &quot;&quot;&quot;</span>
    CRIPTOGRAFAR = <span style="color: #ff4500;">0</span>
    DESCRIPTOGRAFAR = <span style="color: #ff4500;">1</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> cript<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,  sKey,  sTxt,  iAction<span style="color: black;">&#41;</span>:
        bf = blowfish.<span style="color: black;">Blowfish</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>sKey<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">8</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: black;">&#91;</span><span style="color: #dc143c;">string</span>.<span style="color: black;">ljust</span><span style="color: black;">&#40;</span>sKey, <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#91;</span>sKey<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> iAction == <span style="color: #008000;">self</span>.<span style="color: black;">DESCRIPTOGRAFAR</span>:
            sTxt = <span style="color: #dc143c;">base64</span>.<span style="color: black;">b64decode</span><span style="color: black;">&#40;</span>sTxt<span style="color: black;">&#41;</span>
&nbsp;
        sCript = <span style="color: #483d8b;">&quot;&quot;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: black;">&#91;</span>x<span style="color: #66cc66;">*</span><span style="color: #ff4500;">8</span> <span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,  <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>sTxt<span style="color: black;">&#41;</span>/<span style="color: #ff4500;">8</span>+<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span> :
            sSBox = sTxt<span style="color: black;">&#91;</span>i:i+<span style="color: #ff4500;">8</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>sSBox<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">0</span> :
                <span style="color: #ff7700;font-weight:bold;">if</span> iAction == <span style="color: #008000;">self</span>.<span style="color: black;">CRIPTOGRAFAR</span>:
                    sCript += bf.<span style="color: black;">encrypt</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">string</span>.<span style="color: black;">ljust</span><span style="color: black;">&#40;</span>sSBox,  <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">elif</span> iAction == <span style="color: #008000;">self</span>.<span style="color: black;">DESCRIPTOGRAFAR</span>:
                    sCript += bf.<span style="color: black;">decrypt</span><span style="color: black;">&#40;</span>sSBox<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> iAction == <span style="color: #008000;">self</span>.<span style="color: black;">CRIPTOGRAFAR</span>:
            <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">base64</span>.<span style="color: black;">b64encode</span><span style="color: black;">&#40;</span>sCript<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">elif</span> iAction == <span style="color: #008000;">self</span>.<span style="color: black;">DESCRIPTOGRAFAR</span>:
            <span style="color: #ff7700;font-weight:bold;">return</span> sCript
&nbsp;
<span style="color: #808080; font-style: italic;">##################################################</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span> :
    bfc = BFCript<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">4</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;cript&quot;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;descript&quot;</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> BFCript.__doc__
        <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;cript&quot;</span> :
        <span style="color: #ff7700;font-weight:bold;">print</span> bfc.<span style="color: black;">cript</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>, <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span>,  bfc.<span style="color: black;">CRIPTOGRAFAR</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;descript&quot;</span> :
        <span style="color: #ff7700;font-weight:bold;">print</span> bfc.<span style="color: black;">cript</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>,  <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span>,  bfc.<span style="color: black;">DESCRIPTOGRAFAR</span><span style="color: black;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2007/11/21/resposta-do-desafio-criptografia-blowfish/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>OLPC Game Jam Brazil e Conisli</title>
		<link>http://felipetonello.com/blog/2007/11/12/olpc-game-jam-brazil-e-conisli/</link>
		<comments>http://felipetonello.com/blog/2007/11/12/olpc-game-jam-brazil-e-conisli/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 02:30:44 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[conisli]]></category>
		<category><![CDATA[game jam]]></category>
		<category><![CDATA[olpc]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/2007/11/12/olpc-game-jam-brazil-e-conisli/</guid>
		<description><![CDATA[É isso ae.. Foi muito bom esse final de semana. Na sexta feira fui para o conisli onde dei duas palestras: Engatinhando com PHP e AJAX(odp, pdf) Zend Framework para um PHP mais poderoso(odp, pdf) E no OLPC Game Jam Brazil foi muitoooo legal, bem mais do que eu imaginei! Conheci muita gente, inclusive o [...]]]></description>
			<content:encoded><![CDATA[<p>É isso ae..</p>
<p>Foi muito bom esse final de semana. Na sexta feira fui para o conisli onde dei duas palestras:</p>
<ul>
<li>Engatinhando com PHP e AJAX(<a href="/Sistemas/Upload/arquivo.php?i=16" title="Engatinhando com PHP e AJAX(odp) @ conisli">odp</a>, <a href="/Sistemas/Upload/arquivo.php?i=17" title="Engatinhando com PHP e AJAX(pdf) @ conisli">pdf</a>)</li>
<li>Zend Framework para um PHP mais poderoso(<a href="/Sistemas/Upload/arquivo.php?i=18" title="Zend Frameowkr para um PHP mais poderoso(odp) @ conisli">odp</a>, <a href="/Sistemas/Upload/arquivo.php?i=19" title="Zend Frameowkr para um PHP mais poderoso(pdf) @ conisli">pdf</a>)</li>
</ul>
<p>E no <a href="http://wiki.laptop.org/go/Game_Jam_Brasil">OLPC Game Jam Brazil</a> foi muitoooo legal, bem mais do que eu imaginei!</p>
<p>Conheci muita gente, inclusive o <a href="http://lameiro.wordpress.com/">Leandro Lameiro</a>(manja muito de pyton) que fez parte do time que é super gente fina!</p>
<p>Comemos bastante lá, aprendemos muito e zuamos!<br />
Computadores com <a href="http://fedoraproject.org/">Fedora</a>, acesso ao root, XO para todos, internet, wifi, muita comida e até um quartinho para dormir! hehehe</p>
<p>Os jogos estavam muito bons! E a maioria do pessoal também não tinha muita experiência com <a href="http://www.pygame.org/">PyGame</a>, e uns nem com <a href="http://www.python.org/">Python</a>, fizeram em <a href="http://www.libsdl.org/">SDL</a> com C mesmo!</p>
<p>Nota 10 para o evento, e estamos esperando o próximo!!</p>
<p>Depois eu faço um posto sobre o jogo que eu e o <a href="http://lameiro.wordpress.com/">Leandro Lameiro</a> desenvolvemos.</p>
<p>Vocês podem ver as fotos do evento no meu <a href="http://www.flickr.com/photos/chackalsjc/" title="Felipe Tonello @ flickr">flick</a> e na tag <a href="http://www.flickr.com/photos/tags/gamejambrasil/" title="GameJam Brasil">GameJam Brasil</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2007/11/12/olpc-game-jam-brazil-e-conisli/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Desafio criptografia Blowfish</title>
		<link>http://felipetonello.com/blog/2007/08/23/desafio-criptografia-blowfish/</link>
		<comments>http://felipetonello.com/blog/2007/08/23/desafio-criptografia-blowfish/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 15:06:10 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[desafios]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/2007/08/23/desafio-criptografia-blowfish/</guid>
		<description><![CDATA[Eu estou testando esses dias um brute force que estou fazendo, só que para testa-lo eu tive que usar uma criptografia chamada Blowfish. Ela é bem interessante e também opensource. Ela é bem simples de implementar também. Desafio!! Agora vamos para o legal. O desafio é bem simples também. Quem descriptografar essa mensagem vai ganhar [...]]]></description>
			<content:encoded><![CDATA[<p>Eu estou testando esses dias um <a href="http://pt.wikipedia.org/wiki/For%C3%A7a_bruta" title="Brute Force na wikipedia">brute force</a> que estou fazendo, só que para testa-lo eu tive que usar uma criptografia chamada <a href="http://pt.wikipedia.org/wiki/Blowfish" title="Blowfish na wikipedia">Blowfish</a>. Ela é bem interessante e também <a href="http://pt.wikipedia.org/wiki/Opensource" title="Opensource na wikipedia">opensource</a>. Ela é bem simples de implementar também.</p>
<blockquote><p>Desafio!!</p></blockquote>
<p>Agora vamos para o legal.<br />
O desafio é bem simples também.</p>
<p>Quem descriptografar essa mensagem vai ganhar um post aqui no meu blog além de se divertir um pouquinho heheh <img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">9M39agUxnX8PRznCylaC1/6rEXVP5R85QTO/be8XAO+WRJ2nAGDQ4PWq
SOGSQe/CRDkegrH242gpfOcBHPZ6TURUMcQZXkSV8g7WcEIQiCLTuejOt0HCExewS
XUgxg8wRlvO6G2ZrKOv6YLzcsXmBHB/JbZ5nuMnlIYQNGj1ncYHbxyJrGHj1Xr7Q696E+u
WfcZAm9z/iRfZ9rb79EXY7f/5BBEvdkluxDpedPzam33CQLZoEVixSOwVI18USigj45W6fDk+
yFTGkLF1tmh5Zg==</pre></div></div>

<p>O detalhe é que <strong>não existe essas quebras de linha</strong>, só coloquei por questão de não destruir o layout.<br />
A senha da mensagem criptografada é: <strong>desafio</strong></p>
<p><a href="/scripts/python/blowfish.txt" title="Classe para python da criptografia Blowfish">Blowfish para Python</a> (está em arquivo .txt porque meu servidor não deixa baixar script direto <img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  )<br />
<a href="http://pear.php.net/package/Crypt_Blowfish" title="Blowfish para PHP">Blowfish para PHP(pear package)</a><br />
<a href="http://www.koders.com/java/fid3CAADD04E226273E16CA252D9A0AFDA46D55DB45.aspx?s=blowfish" title="Blowfish para Java">Blowfish para Java</a><br />
<a href="http://www.koders.com/cpp/fid08189DF738EB3A8A9339EFB495DDFA23572AD3CB.aspx" title="Blowfish para C++">Blowfish para C++</a><br />
<a href="http://www.stillhq.com/gpg/source-1.0.3/cipher/blowfish.html" title="Blowfish para C">Blowfish para C</a><br />
<a href="http://pascal.sources.ru/crypt/blowpas.htm" title="Blowfish para Pascal">Blowfish para Pascal</a><br />
<a href="http://opensecondlife.org:8180/source/xref/linden/release/indra/test/blowfish.pl" title="Blowfish para Perl">Blowfish para Perl</a></p>
<p>O desafiante pode usar qualquer tipo de linguagem de programação. O Blowfish existe em qualquer linguagem, até Javascript. É só dar uma pesquisada.</p>
<p>Se você não conhecer criptografia e muito menos blowfish, a ideia principal é dar uma pesquisada como que descriptografa usando a técnica blowfish..</p>
<p>PS: Esse desafio é simples, mas existe pegadinhas nele. hehehe <img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://felipetonello.com/blog/2007/11/21/resposta-do-desafio-criptografia-blowfish/">Resposta do desafio!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2007/08/23/desafio-criptografia-blowfish/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Encontro Brasileiro da Comunidade Python!</title>
		<link>http://felipetonello.com/blog/2007/08/10/encontro-brasileiro-da-comunidade-python/</link>
		<comments>http://felipetonello.com/blog/2007/08/10/encontro-brasileiro-da-comunidade-python/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 23:27:14 +0000</pubDate>
		<dc:creator>Felipe Tonello</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://felipetonello.com/blog/2007/08/10/encontro-brasileiro-da-comunidade-python/</guid>
		<description><![CDATA[Galera, Vai acontecer o PyConBrasil 3 que vai acontecer esse ano em Joinville, SC nos dias 30, 31 de agosto e 1 de setembro na SOCIESC. Eu nunca fui em nenhum, vai ser minha primeira vez e estou muito animado! Vai ser muito bom! Estava vendo a programação e vou debulhar todas as palestras!!!!! NÃO [...]]]></description>
			<content:encoded><![CDATA[<p>Galera,</p>
<p>Vai acontecer o <a href="http://www.pyconbrasil.com.br/">PyConBrasil 3</a> que vai acontecer esse ano em Joinville, SC nos dias 30, 31 de agosto e 1 de setembro na <a href="http://www.sociesc.org.br/">SOCIESC</a>.</p>
<p><a href="http://www.pyconbrasil.com.br/"><img src="http://felipetonello.com/imagens/pyconbrasil3-fullparado.gif" alt="Encontro Brasileiro da Comunidade Python!" /></a></p>
<p>Eu nunca fui em nenhum, vai ser minha primeira vez e estou muito animado! Vai ser muito bom! Estava vendo a <a href="http://pyconbrasil.com.br/sobre-o-evento/programacao">programação</a> e vou debulhar todas as palestras!!!!!</p>
<p><a href="http://pyconbrasil.com.br/sobre-o-evento/inscricao">NÃO PERCA TEMPO, FAÇA SUA INSCRIÇÃO AGORA!!!!!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://felipetonello.com/blog/2007/08/10/encontro-brasileiro-da-comunidade-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
