<?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>to live is to die &#187; Programación</title>
	<atom:link href="http://www.artegrafico.net/blog/category/programacion/feed" rel="self" type="application/rss+xml" />
	<link>http://www.artegrafico.net/blog</link>
	<description>artegrafico.net</description>
	<lastBuildDate>Sat, 08 May 2010 23:52:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Estilando checkbox de formularios usando jQuery+CSS</title>
		<link>http://www.artegrafico.net/blog/estilando-checkbox-de-formularios-usando-jquery-css.html</link>
		<comments>http://www.artegrafico.net/blog/estilando-checkbox-de-formularios-usando-jquery-css.html#comments</comments>
		<pubDate>Fri, 07 May 2010 23:28:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.artegrafico.net/blog/?p=634</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><strong>Estilar nuestros checkbox</strong> en formularios se puede hacer facil usando <strong>jQuery</strong>. Partiendo de una lista de opciones en formato <strong>HTML</strong>, un <strong>SPRITE</strong> para el rollover del estado del checkbox y un poquito de código en <strong>jQuery</strong> y ya podremos tener unos checkbox de lo mas originales para todos los formularios que desemos utilizar. Con un poquito de imaginación y retocando el sprite y la hoja de estilos podremos darle otra apariencia mas acorde a lo que estemos buscando.</p>
<p><img class="size-medium wp-image-639 alignleft" style="margin-left: 25px; margin-right: 25px;" title="captura" src="http://www.artegrafico.net/blog/wp-content/uploads/2010/05/captura-211x300.gif" alt="" width="211" height="300" />El ejemplo en cuestión tiene dispnibles 3 set disponibles para elegir. Adjunto el <strong>PSD</strong> con el <strong>SPRITE</strong> que ha creado el autor para el intercambio de imagen cuando hacemos click en el checkbox. Podéis retocarlo a vuestro gusto o también es posible crear uno de cero tirando de imaginación.</p>
<p>Los métodos y eventos de  <strong>JQuery</strong> que se han usado para crear este ejemplo son los siguientes:</p>
<ul>
<li><strong>click(): </strong> evento usado para cuando hacemos click con el ratón.</li>
<li><strong>parent():</strong> Consigue el padre del elemento que seleccionemos.</li>
<li><strong>addClass() </strong>y<strong> removeClass()</strong>: método muy útil en este ejemplo para asignar o remover clases.</li>
<li><strong>attr() </strong>y<strong> removeAttr(): </strong>método para conseguir o remover atributos.</li>
<li><strong>preventDefault(): </strong>alterar comportamientos.</li>
<li><strong>find(): </strong> método que nos permitirá encontrar algo en concreto.</li>
<li><strong>fadeIn()</strong> y<strong> fadeOut()</strong>: son métodos para ocultar o mostrar elementos usando transparencias.</li>
</ul>
<ul>
<li><a href="http://www.artegrafico.net/laboratorio/ajax/jquery.checklist/" target="_blank">Ver ejemplo demostración.</a></li>
<li><a href="http://www.artegrafico.net/laboratorio/ajax/jquery.checklist/zip/jquery.checklist.zip" target="_blank">Descarga el script +ficheros+PSD con SET de estilos.</a></li>
</ul>
<p>Fuentes:</p>
<p><a href="http://aaronweyenberg.com/90/pretty-checkboxes-with-jquery" target="_blank">http://aaronweyenberg.com/90/pretty-checkboxes-with-jquery</a><br />
<a href="http://combinedartsmedia.com/sean/check-boxes_and_radio-buttons/" target="_blank">http://combinedartsmedia.com/sean/check-boxes_and_radio-buttons/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.artegrafico.net/blog/estilando-checkbox-de-formularios-usando-jquery-css.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>refresh &amp; reload + setInterval con ajax y jQuery</title>
		<link>http://www.artegrafico.net/blog/refresh-reload-setinterval-con-ajax-y-jquery.html</link>
		<comments>http://www.artegrafico.net/blog/refresh-reload-setinterval-con-ajax-y-jquery.html#comments</comments>
		<pubDate>Sat, 24 Apr 2010 23:30:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ajax update]]></category>
		<category><![CDATA[fadein]]></category>
		<category><![CDATA[fadeout]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[setInterval]]></category>

		<guid isPermaLink="false">http://www.artegrafico.net/blog/?p=614</guid>
		<description><![CDATA[Frecuentemente a la hora de programar necesitamos refrescar y cargar contenido en una capa y que  ejecute un fichero cada x segundos. Esta práctica es muy útil en chats, blogs, e-commerce, cms, etc &#8230;  El siguiente ejemplo actualiza el contenido de una capa cada 10 segundos y carga en ella el contenido del fichero que [...]]]></description>
			<content:encoded><![CDATA[<p>Frecuentemente a la hora de programar necesitamos refrescar y cargar contenido en una capa y que  ejecute un fichero cada x segundos. Esta práctica es muy útil en chats, blogs, e-commerce, cms, etc &#8230;  El siguiente ejemplo actualiza el contenido de una capa cada 10 segundos y carga en ella el contenido del fichero que le indiquemos. El efecto de fundido usando <strong>fadeOut </strong>y <strong>fadeIn </strong>es para darle más dinamismo al script.</p>
<pre class="brush:javascript">&lt;script&gt;
function actualizar(){
   $('#capa').fadeOut("slow").load('fichero.php').fadeIn("slow");
}
setInterval( "actualizar()", 10000 );
&lt;/script&gt;

&lt;div id="capa"&gt;&lt;/div&gt;</pre>
<p><a href="http://www.artegrafico.net/laboratorio/ajax/jquery.refresh/refresh.php">click aquí</a> para ver una pequeña demostración.</p>
<p>Tenéis más documentación de los métodos y funciones usados en el ejemplo a continuación. Haz click en los enlaces para obtener más información:</p>
<ul>
<li><a href="http://api.jquery.com/load/">.load()</a> es el método de <strong>JQuery </strong>usado para cargar los datos desde servidor y la cual nos retornará los resultados en formato <strong>HTML</strong>.</li>
<li><a href="http://api.jquery.com/fadeOut/">fadeOut()</a> es un método de <strong>jQuery </strong>para ocultar elementos usando transparencias.</li>
<li><a href="http://api.jquery.com/fadeIn/">fadeIn()</a> es un método de <strong>jQuery </strong>para mostrar elementos usando transparencias.</li>
<li><strong>setInterval </strong>es una función <strong>JavaScript </strong>que nos permitirá ejecutar una función cada X segundos que le indiquemos.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.artegrafico.net/blog/refresh-reload-setinterval-con-ajax-y-jquery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creando un Script en PHP para chequear IPs en Listas negras (Blacklist)</title>
		<link>http://www.artegrafico.net/blog/creando-un-script-en-php-para-chequear-ips-en-listas-negras-blacklist.html</link>
		<comments>http://www.artegrafico.net/blog/creando-un-script-en-php-para-chequear-ips-en-listas-negras-blacklist.html#comments</comments>
		<pubDate>Mon, 14 Sep 2009 17:20:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[blacklist]]></category>
		<category><![CDATA[dnsbl]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamhaus]]></category>

		<guid isPermaLink="false">http://www.artegrafico.net/blog/?p=573</guid>
		<description><![CDATA[Una lista negra (black list) es una lista donde se registran direcciones IPs que generan SPAM ya sea de forma voluntaria o involuntaria. Estas listas aunque las hay de pago suelen ser libres y cualquiera puede añadir una IP inocente  de manera malintencionada por lo que también  podemos solicitar ser removidos de ellas [...]]]></description>
			<content:encoded><![CDATA[<p>Una <strong>lista negra</strong> (<strong>black list</strong>) es una lista donde se registran direcciones IPs que generan SPAM ya sea de forma voluntaria o involuntaria. Estas listas aunque las hay de pago suelen ser libres y cualquiera puede añadir una IP inocente  de manera malintencionada por lo que también  podemos solicitar ser removidos de ellas si hemos sido incluidos.</p>
<p>Tanto chequear diferentes tipos de webs  con listas negras he decidido crear este pequeño <strong>Script en PHP</strong> que nos será de utilidad ya que comprueba una lista personalizada de <strong>Black List </strong>y nos devuelve el resultado en pantalla o a un email si se lo indicamos. Es totalmente personalizable y muy sencillo de modificar.</p>
<pre class="brush:c">if ($_POST['ip']) { $ip = $_POST['ip']; } 

function blacklist($ip) {
   $dnsbl=array("b.barracudacentral.org"=&gt;"",
   "bl.deadbeef.com"=&gt;"",
   "bl.emailbasura.org"=&gt;"",
   "bl.spamcannibal.org"=&gt;"",
   "bl.spamcop.net"=&gt;"Blacklist de Spamcop",
   "blackholes.five-ten-sg.com"=&gt;"",
   "blacklist.woody.ch"=&gt;"",
   "bogons.cymru.com"=&gt;"",
   "cbl.abuseat.org"=&gt;"Composite Blocking List)",
   "cdl.anti-spam.org.cn"=&gt;"",
   "combined.abuse.ch"=&gt;"",
   "combined.rbl.msrbl.net"=&gt;"",
   "db.wpbl.info"=&gt;"",
   "dnsbl-1.uceprotect.net"=&gt;"",
   "dnsbl-2.uceprotect.net"=&gt;"",
   "dnsbl-3.uceprotect.net"=&gt;"lista de pago",
   "dnsbl.ahbl.org"=&gt;"",
   "dnsbl.cyberlogic.net"=&gt;"",
   "dnsbl.inps.de"=&gt;"",
   "dnsbl.njabl.org"=&gt;"",
   "dnsbl.sorbs.net"=&gt;"rangos dinámicos",
   "drone.abuse.ch"=&gt;"",
   "drone.abuse.ch"=&gt;"",
   "duinv.aupads.org"=&gt;"",
   "dul.dnsbl.sorbs.net"=&gt;"rangos dinámicos",
   "dul.ru"=&gt;"",
   "dyna.spamrats.com"=&gt;"rangos dinámicos",
   "dynip.rothen.com"=&gt;"",
   "fl.chickenboner.biz"=&gt;"",
   "http.dnsbl.sorbs.net"=&gt;"",
   "images.rbl.msrbl.net"=&gt;"",
   "ips.backscatterer.org"=&gt;"",
   "ix.dnsbl.manitu.net"=&gt;"",
   "korea.services.net"=&gt;"Block Asian spam (Korea)",
   "misc.dnsbl.sorbs.net"=&gt;"",
   "noptr.spamrats.com"=&gt;"",
   "ohps.dnsbl.net.au"=&gt;"",
   "omrs.dnsbl.net.au"=&gt;"",
   "orvedb.aupads.org"=&gt;"",
   "osps.dnsbl.net.au"=&gt;"",
   "osrs.dnsbl.net.au"=&gt;"",
   "owfs.dnsbl.net.au"=&gt;"",
   "owps.dnsbl.net.au"=&gt;"",
   "phishing.rbl.msrbl.net"=&gt;"",
   "probes.dnsbl.net.au"=&gt;"",
   "proxy.bl.gweep.ca"=&gt;"",
   "proxy.block.transip.nl"=&gt;"",
   "psbl.surriel.com"=&gt;"Passive Spam Block List",
   "rbl.interserver.net"=&gt;"",
   "rdts.dnsbl.net.au"=&gt;"",
   "relays.bl.gweep.ca"=&gt;"",
   "relays.bl.kundenserver.de"=&gt;"",
   "relays.nether.net"=&gt;"",
   "residential.block.transip.nl"=&gt;"rangos dinámicos",
   "ricn.dnsbl.net.au"=&gt;"",
   "rmst.dnsbl.net.au"=&gt;"",
   "short.rbl.jp"=&gt;"",
   "smtp.dnsbl.sorbs.net"=&gt;"",
   "socks.dnsbl.sorbs.net"=&gt;"",
   "spam.abuse.ch"=&gt;"",
   "spam.dnsbl.sorbs.net"=&gt;"",
   "spam.rbl.msrbl.net"=&gt;"",
   "spam.spamrats.com"=&gt;"",
   "spamlist.or.kr"=&gt;"",
   "spamrbl.imp.ch"=&gt;"",
   "t3direct.dnsbl.net.au"=&gt;"",
   "tor.ahbl.org"=&gt;"",
   "tor.dnsbl.sectoor.de"=&gt;"",
   "torserver.tor.dnsbl.sectoor.de"=&gt;"",
   "ubl.lashback.com"=&gt;"Tracking Unsubscribe Abuse",
   "ubl.unsubscore.com"=&gt;"",
   "virbl.bit.nl","virus.rbl.jp"=&gt;"",
   "virus.rbl.msrbl.net"=&gt;"",
   "web.dnsbl.sorbs.net"=&gt;"",
   "wormrbl.imp.ch"=&gt;"",
   "sbl.spamhaus.org"=&gt;"Spamhaus Block List",
   "xbl.spamhaus.org"=&gt;"Spamhaus Exploits Block List",
   "pbl.spamhaus.org"=&gt;"Spamhaus Policy Block List",
   "zen.spamhaus.org"=&gt;"Spamhaus (Combinación Spamhaus)",
   "zombie.dnsbl.sorbs.net"=&gt;"",
   "1.apews.org"=&gt;"Anon. Postmasters Early Warning System",
   "2.apews.org"=&gt;"Anon. Postmasters Early Warning System",
   "bulk.rhs.mailpolice.com"=&gt;"domains",
   "porn.rhs.mailpolice.com"=&gt;"pornograf sites",
   "fraud.rhs.mailpolice.com"=&gt;"phising",
   "block.rhs.mailpolice.com"=&gt;"bulk y fraud",
   "dynamic.rhs.mailpolice.com"=&gt;"dinamicas",
   "adv.rhs.mailpolice.com"=&gt;"email marketing",
   "webmail.rhs.mailpolice.com"=&gt;"webmails services",
   "adult.rhs.mailpolice.com"=&gt;"adult sites, blogs etc",
   "redir.rhs.mailpolice.com"=&gt;"sites redirigidos");

if ($_POST['ip']) {
   $parte=explode(".",$ip);
   $rip=$parte[3].".".$parte[2].".".$parte[1].".".$parte[0];

   foreach ($dnsbl as $key=&gt;$value){
      if (checkdnsrr($rip.".".$key . '.',"A")) { $lista[]=$key." - ".$value; }
   }

   echo "&lt;ul&gt;";
   foreach ($lista as $server){
      echo "&lt;li&gt;".$server."&lt;/li&gt;";
      $bl .= $server."\n";
   }
   echo "&lt;/ul&gt;";  

   # ---------------------------------------------
   # - enviamos un reporte a un email.
   if ($_POST['report'] == "on") {
      $email = "su@email";
      $headers = "MIME-Version: 1.0\n";
      $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
      $headers .= "From: $email \r\n";
      $asunto = "Report Blacklist: $ip";
      $txt = "La ip $ip esta listada en:\n\n".$bl;
      mail($email, $asunto, $txt, $headers);
   } # fin reporte
   # ---------------------------------------------

} # fin if
} // fin funcion listas negras

if ($_POST['ip']) {
   echo "Su IP: &lt;strong&gt;".getenv('REMOTE_ADDR')." &lt;/strong&gt;esta en las siguientes listas negras:&lt;p /&gt;";
   echo blacklist($ip);
}</pre>
<p>El formulario en HTML quedaría de la siguiente forma:</p>
<pre class="brush:c">&lt;form method="post"&gt;
 &lt;input name="ip" type="text" /&gt;
 &lt;input name="report" type="checkbox" /&gt; Enviar reporte por email.
 &lt;input type="submit" value="Comprobar" /&gt;
&lt;/form&gt;</pre>
<p>Para una demo del script:<br />
<a href="http://www.artegrafico.net/laboratorio/php/blacklist.php">http://www.artegrafico.net/laboratorio/php/blacklist.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.artegrafico.net/blog/creando-un-script-en-php-para-chequear-ips-en-listas-negras-blacklist.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fatal error: Allowed memory size &#8230;</title>
		<link>http://www.artegrafico.net/blog/fatal-error-allowed-memory-size.html</link>
		<comments>http://www.artegrafico.net/blog/fatal-error-allowed-memory-size.html#comments</comments>
		<pubDate>Thu, 18 Sep 2008 15:48:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[Maximum memory allocation]]></category>
		<category><![CDATA[memory_limit]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[PHP Configuration]]></category>
		<category><![CDATA[php ini_set]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[resource limits]]></category>
		<category><![CDATA[restart]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.artegrafico.net/blog/?p=143</guid>
		<description><![CDATA[Este es un error muy típico que se produce en nuestros scripts PHP cuando excedemos el límite de memoria que tiene configurado por defecto nuestro servidor. Para solucionarlo podemos conectar a nuestro webmin, en el caso de tenerlo.
https://xxx.xxx.xxx.xxx:10000
Vamos al icono otras opciones
PHP Configuration
Manage /etc/php.ini
Resource limits
Y en Maximum memory allocation indicamos por ejemplo 32MB
Otra opción es [...]]]></description>
			<content:encoded><![CDATA[<p>Este es un error muy típico que se produce en nuestros scripts PHP cuando excedemos el límite de memoria que tiene configurado por defecto nuestro servidor. Para solucionarlo podemos conectar a nuestro webmin, en el caso de tenerlo.</p>
<pre class="brush:c">https://xxx.xxx.xxx.xxx:10000
Vamos al icono otras opciones
PHP Configuration
Manage /etc/php.ini
Resource limits
Y en Maximum memory allocation indicamos por ejemplo 32MB</pre>
<p>Otra opción es conectarnos por SSH a nuestro servidor y editar el fichero php.ini. Una vez localizado lo editamos y cambiamos memory_limit a 32MB y reiniciamos nuestro apache.</p>
<pre class="brush:c"># find / -name php.ini
# /etc/init.d/httpd -k restart</pre>
<p>En el caso que nuestro servidor de hosting no permita las soluciones anteriores podemos incluir el siguiente código en nuestros scripts php.</p>
<pre class="brush:php">&lt;?php
ini_set("memory_limit","32M");
?&gt;</pre>
<p>Si tenemos el módulo de apache mod_rewrite activado en nuestro servidor podemos escribir la siguiente línea en nuestro .htaccess.</p>
<pre class="brush:c">php_value memory_limit 32M</pre>
<p>Si estamos usando la librería GD para tratar imágenes de muy alta resolución, funciones tan comunes como imagecreatefromjpeg() para crear una nueva imágen a partir de otra dada, nos reportarán errores por lo que también tendremos este tipo de problemas y necesitamos aumentar el valor de memory_limit incluso hasta 64mb. Esto nos podría pasar cuando las imágenes tengan más de 3000px de resolución.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.artegrafico.net/blog/fatal-error-allowed-memory-size.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicación para descifrar un HASH MD5</title>
		<link>http://www.artegrafico.net/blog/aplicacion-para-descifrar-un-hash-md5.html</link>
		<comments>http://www.artegrafico.net/blog/aplicacion-para-descifrar-un-hash-md5.html#comments</comments>
		<pubDate>Sat, 07 Jun 2008 10:54:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[128 bits]]></category>
		<category><![CDATA[claves]]></category>
		<category><![CDATA[criptografía]]></category>
		<category><![CDATA[diccionarios]]></category>
		<category><![CDATA[encriptación]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[md5]]></category>

		<guid isPermaLink="false">http://www.artegrafico.net/blog/?p=13</guid>
		<description><![CDATA[Un HASH MD5 es un código alfanumérico encriptado en 128 Bits y que contiene dicha cadena que deseamos ocultar. Encriptar un cadena en MD5 es sencillo pero el proceso de vuelta no lo es tanto. Para ello debemos de hacer miles de comprobaciones hasta dar con ella. Uno de los métodos más utilizados es usar [...]]]></description>
			<content:encoded><![CDATA[<p>Un HASH MD5 es un código alfanumérico encriptado en 128 Bits y que contiene dicha cadena que deseamos ocultar. Encriptar un cadena en MD5 es sencillo pero el proceso de vuelta no lo es tanto. Para ello debemos de hacer miles de comprobaciones hasta dar con ella. Uno de los métodos más utilizados es usar diccionarios para ir comprobando coincidencias y es este sistema el que he programado en PHP para comprobar su potencia.</p>
<p>Esta pequeña aplicación nos permite hacer comprobaciones en diccionarios y devolverá un resultado si hay coincidencia en alguno de ellos.</p>
<p><a href="http://www.artegrafico.net/blog/wp-content/uploads/2008/09/hashing_1221750524970.png" rel="lightbox[13]"><img class="alignnone size-full wp-image-141" title="hashing_1221750524970" src="http://www.artegrafico.net/blog/wp-content/uploads/2008/09/hashing_1221750524970.png" alt="" width="500" height="164" /></a></p>
<p>Está hecha en php+ajax y podéis acceder a través del siguiente enlace.<br />
<a title="aplicacion php-ajax para comprobar coincidencias de hash" href="http://www.artegrafico.net/laboratorio/hash/">http://www.artegrafico.net/laboratorio/hash/<br />
</a></p>
<p>Documentación:<br />
<a href="http://www.unixwiz.net/techtips/iguide-crypto-hashes.html">Guía ilustrada de criptografía</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.artegrafico.net/blog/aplicacion-para-descifrar-un-hash-md5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
