<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>md5 &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/md5/</link>
	<description>Feed of posts on WordPress.com tagged "md5"</description>
	<pubDate>Sun, 29 Nov 2009 19:42:26 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Data Verification of Folders &amp; Discs with MD5 Checksums in Ubuntu]]></title>
<link>http://ubuntugenius.wordpress.com/2009/11/17/data-verification-of-folders-discs-with-md5-checksums-in-ubuntu/</link>
<pubDate>Tue, 17 Nov 2009 10:02:09 +0000</pubDate>
<dc:creator>ubuntugenius</dc:creator>
<guid>http://ubuntugenius.wordpress.com/2009/11/17/data-verification-of-folders-discs-with-md5-checksums-in-ubuntu/</guid>
<description><![CDATA[If you&#8217;re unfamiliar with MD5 checksums (or MD5sums for short), they are simply a string of nu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you&#8217;re unfamiliar with <strong><span style="color:#008000;">MD5 checksums</span></strong> (or <strong>MD5sums</strong> for short), they are simply a string of numbers (<em>&#8220;<strong>hashes</strong>&#8220;</em>) generated when each file is scanned, to be used to later <strong><span style="color:#008000;">verify the integrity of the data</span></strong>. You may have noted when downloading Linux .<strong>iso</strong> images or similar that there either was a text file with it &#8211; usually with the same suffix as the main file, but with perhaps an <strong>.md5sums</strong> extension &#8211; or the actual hash below the download link.</p>
<p>Also, you probably know you can check your <strong><span style="color:#993300;">Ubuntu</span></strong> CD for defects while at the boot menu, but since that just looks to an <strong>md5sum.txt</strong> file (most common name on Linux live CDs), you can also do so in Ubuntu via the terminal. So, for example, if you&#8217;ve burned a copy of the latest Ubuntu (or other Linux distro) live CD for a friend, you can simply open a terminal and check it without having to reboot.</p>
<p>But the most important use of the <strong><span style="color:#3366ff;">md5sum</span></strong> command is to <strong>create data verification for folders</strong> on your drive, as well as<strong> data CDs and DVDs</strong>, and even <strong>video DVDs</strong>. If you just wanted to periodically make sure no files are corrupt in a given folder (or whole drive if you want), this is the way to go. If you have a whole bunch of things in a folder you want to burn to a data disc, then the checksum file you create will let you check the disc for defects.</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span></p>
<p>So when you want <span style="color:#ff0000;"><strong>to </strong><strong>create the checksums</strong></span>, <strong><a href="http://ubuntugenius.wordpress.com/2009/08/30/what-does-open-a-terminal-in-the-folder-mean/">open a terminal in that folder</a></strong> and enter the following:</p>
<p><strong><span style="color:#3366ff;">find -type f -exec md5sum &#8220;{}&#8221; \; &#62; md5sum.txt</span></strong></p>
<p><span style="text-decoration:underline;">Note that this will also create a hash for the file itself</span>, ie:  <strong>md5sum.txt</strong>, which will produce an error when checked, since it was generated while the file was still being created:</p>
<p><strong><span style="color:#800000;">md5sum: WARNING: 1 of 103 computed checksums did NOT match</span></strong></p>
<p>When you scroll up the terminal to see the cause of the error, you&#8217;ll find:</p>
<p><strong><span style="color:#800000;">./md5sum.txt: FAILED </span></strong></p>
<p>You will need to manually edit out the line for <strong>md5sum.txt</strong>, and if the file is really large, just hit <strong>Ctrl+F</strong> and search for <strong><em>md5</em></strong>, and it will take you to the line you need to delete.</p>
<p>Once that&#8217;s done, you can verify the folder/drive any time you wish. With discs, it isn&#8217;t limited to data, or rather since the<strong> .vob</strong> files etc of a DVD <span style="text-decoration:underline;">are</span> data, you can generate the <strong>md5sum.txt</strong> in the parent folder of the title (ie: the one <strong><em>VIDEO_TS</em></strong> resides in) and check movies as well as data backups.</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p><span style="color:#ff0000;"><strong>To </strong><strong>check a folder</strong></span>, open a terminal there and enter:</p>
<p><strong><span style="color:#3366ff;">md5sum -c md5sum.txt</span></strong></p>
<p><span style="color:#ff0000;"><strong>To </strong><strong>check a disc</strong></span> that has that file, including the likes of the Ubuntu CD, you&#8217;ll need the terminal pointing at the disc. But rather than open a folder window and choose <strong><em>Open in Terminal</em></strong> from the context menu, you can do that via any open terminal and incorporate the checking command above with:</p>
<p><strong><span style="color:#3366ff;">cd /media/cdrom0 &#38;&#38; md5sum -c md5sum.txt</span></strong></p>
<p>Occasionally systems don&#8217;t have <strong><em>cdrom0</em></strong> as the device name for the disc drive, so when you open a terminal there the other way, make note of the device name and alter the last command accordingly.</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p><strong><span style="color:#ff0000;">When the check is over</span></strong>, if there are any errors, it will tell you how many failed the test out of how many listed. In the following example, you are actually presented with two errors at the end, the first complaining of a missing file, the other reporting one that seems to be corrupt:</p>
<p><span style="color:#800000;"><strong>md5sum: WARNING: 1 of 102 listed files could not be read<br />
<span style="color:#993366;">md5sum: WARNING: 1 of 101 computed checksums did NOT match</span></strong></span></p>
<p>You can then scroll up the terminal if need be and find those that didn&#8217;t pass:</p>
<p><span style="color:#800000;"><strong>md5sum: ./Wallpaper01.jpg: No such file or directory<br />
./Wallpaper01.jpg: FAILED open or read</strong></span><span style="color:#993366;"><strong><br />
./Wallpaper002.jpg.jpg: FAILED </strong></span></p>
<p>In this example, <em>&#8220;<strong>Wallpaper01.jpg</strong>&#8220;</em> is seen as &#8220;missing&#8221;, because it was in fact renamed to <em>&#8220;<strong>Wallpaper001.jpg</strong>&#8220;</em> (to keep in line with the 3-digit numbering of the rest of the files) <strong><span style="text-decoration:underline;">after</span></strong> the checksum was created (so <em>&#8220;<strong>Wallpaper001.jpg</strong>&#8220;</em> is totally ignored, since there was no hash created for it, and <em>&#8220;<strong>Wallpaper01.jpg</strong>&#8220;</em> is seen as missing, since there is no longer a file of that name). <em>&#8220;<strong>Wallpaper002.jpg</strong>&#8220;</em> is probably corrupt, though not all files that do not pass the test fail to open (but, generally, the case is that the file is corrupt, and the larger the file, the  more chance there is of that).</p>
<p>Otherwise, if all you see is the command prompt with the last file above it with an <em><strong>OK</strong></em> next to it, then all is fine:</p>
<p><strong><span style="color:#800000;">./Wallpaper100.jpg: OK</span></strong></p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p>To make all this easier, <strong><a href="http://ubuntugenius.wordpress.com/2009/08/31/custom-terminal-shortcuts-via-bash-aliases/"><span style="color:#ff0000;">make command aliases</span></a></strong>, like <strong><span style="color:#3366ff;">make5</span></strong> (to<strong> generate an md5sum.txt</strong> file), <strong><span style="color:#3366ff;">5</span></strong> (to <strong>check a folder</strong>) and <strong><span style="color:#3366ff;">cd5</span></strong> (to <strong>check a disc</strong> that can be verified). This will save you memorising and typing long commands, or even copying and pasting from a text file of commands you&#8217;ve probably got (if you&#8217;re clever).</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p><span style="color:#ff0000;"><strong>To </strong><strong>check a disc image or other file you&#8217;re downloading</strong></span> that has a checksum listed, you can <strong><span style="color:#000000;">generate a checksum</span></strong>, and simply <strong>compare the output</strong> with what is listed on the website:</p>
<p><strong><span style="color:#3366ff;">md5sum name_of_the_image.iso</span></strong></p>
<p>Obviously, you&#8217;ll need to replace the name in the example with the actual name of the file, but to save typing it if it is long, you can just enter <strong><span style="color:#3366ff;">md5sum</span></strong> (followed by a space), drag the downloaded file to the terminal and drop it there, then hit Enter (though you can, of course, just copy the file&#8217;s name as well). Then, as I said, simply compare the numbers in the terminal and website.</p>
<p>Now, if you&#8217;re downloading a bunch of stuff, all with checksums supplied, you can create your own master checksum file, which will check them all in one go when you&#8217;re ready. Syntax is very important, so the lines should look like this:</p>
<p><span style="color:#008000;"><strong>8790491bfa9d00f283ed9dd2d77b3906 *ubuntu-9.10-desktop-i386.iso<br />
3faa345d298deec3854e0e02410973dc *ubuntu-9.10-alternate-i386.iso<br />
dc51c1d7e3e173dcab4e0b9ad2be2bbf *ubuntu-9.10-desktop-amd64.iso</strong></span></p>
<p>In this example, Ubuntu CDs are used, but they can be anything, as long as you lay it out like that. You can name the file what you want, but if you want to stick with tradition, and to make it easier to check  (via the command above, or its alias <strong><span style="color:#3366ff;">5</span></strong>), name it <strong>md5sum.txt</strong>. And you can use this before you get all the files, as when you run the check, it will just tell you 2 out 0f 3 couldn&#8217;t be found (and you&#8217;ll see the one you did download listed, hopefully with an <em>OK</em> next to it).</p>
<p>If you name the checksum file something different, or in the case of the Ubuntu discs downloaded a master checksum file for all images, and it has a name like <strong>Ubuntu 9.10.MD5Sum</strong> (though that&#8217;s the name I actually gave it), it doesn&#8217;t matter. You can just enter <strong><span style="color:#3366ff;">md5sum -c</span></strong> (followed by a space), then either type the name of the file, or drag the file to the terminal. Note you can also do this with the alias <strong><span style="color:#3366ff;">5</span></strong> &#8211; it will complain it didn&#8217;t find <strong>md5sum.txt</strong>, but then go on to verify the files recorded in <strong>Ubuntu 9.10.MD5Sum</strong> (or whatever your file is called). Of course, you could just rename the checksum file to <strong>md5sum.txt</strong>, but as you can see, you don&#8217;t really need to.</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p>When you&#8217;re going to <strong><span style="color:#ff0000;">backup a folder to DVD</span></strong>, <strong>always run a check</strong> on it first. That way, if you&#8217;ve done something like renamed a bunch of files after the <strong>md5sum.txt</strong> file was created, you&#8217;ll know before burning a disc that will always come up with those &#8220;errors&#8221;. You can then either generate new checksums, or open <strong>md5sum.txt</strong> and replace the old names with the new ones (renaming files does not alter their checksum hashes, so you do not need to generate new ones for them).</p>
<p style="text-align:center;"><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><span style="color:#800000;">∞</span></strong></strong><strong><strong>∞</strong></strong><strong><strong><span style="color:#800000;">∞</span></strong></strong>θ<strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ</strong><strong><span style="color:#800000;">θ</span></strong><strong>θ<span style="color:#800000;">∞</span><strong><strong>∞</strong></strong><strong><strong><span style="color:#008000;"><span style="color:#800000;">∞</span><span style="color:#800080;">•</span></span></strong></strong></strong></strong></span><span style="color:#800080;"><strong><strong><strong><strong><span style="color:#008000;"></span></strong></strong></strong></strong></span></p>
<p>So, hopefully that&#8217;s all you need to get you going in setting up some data verification, which comes in handy when wanting to make sure all the data on a DVD is valid before passing it on, or deleting the copies off your hard drive if archiving. And now that you know what those hashes or <strong>.md5</strong> files are on websites, make sure you grab them, so you can verify the integrity of your downloads. And if you set up those aliases, all of this becomes even simpler, as those names are short and easy to remember.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La suma de comprobación MD5]]></title>
<link>http://bitciosos.wordpress.com/2009/11/15/la-suma-de-comprobacion-md5/</link>
<pubDate>Sun, 15 Nov 2009 12:00:00 +0000</pubDate>
<dc:creator>caspol</dc:creator>
<guid>http://bitciosos.wordpress.com/2009/11/15/la-suma-de-comprobacion-md5/</guid>
<description><![CDATA[Hola ante todo, soy nuevo por aquí así que empezare con algo muy sencillito, y que nunca me habia pa]]></description>
<content:encoded><![CDATA[Hola ante todo, soy nuevo por aquí así que empezare con algo muy sencillito, y que nunca me habia pa]]></content:encoded>
</item>
<item>
<title><![CDATA[MD5, SHA1 funciones de hash]]></title>
<link>http://seifreed.org/2009/11/10/md5-sha1-funciones-de-has/</link>
<pubDate>Tue, 10 Nov 2009 00:41:38 +0000</pubDate>
<dc:creator>Marc Rivero López</dc:creator>
<guid>http://seifreed.org/2009/11/10/md5-sha1-funciones-de-has/</guid>
<description><![CDATA[Es algo bastante extendido en Internet. MD5 y SHA1 sirve para comprobar la integridad de un fichero.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Es algo bastante extendido en Internet. MD5 y SHA1 sirve para comprobar la integridad de un fichero.</p>
<p>Es decir si ese fichero<strong> ha podido ser modificado o no</strong>.</p>
<p>Naturalmente es un tema bastante importante ya que, con este tipo de métodos podemos verificar que realmente estamos descargando y usando algo que proviene de la fuente original y no ha sido modificado por terceros.</p>
<p>Empezaremos por MD5 de echo es el más conocido y extendido por Internet.</p>
<p><span style="color:#ff0000;"><strong>Que es MD5?</strong></span></p>
<blockquote><p>Es uno de los algoritmos de reducción criptográficos diseñados por el profesor <a title="Ronald Rivest" href="http://es.wikipedia.org/wiki/Ronald_Rivest">Ronald Rivest</a> del <a title="MIT" href="http://es.wikipedia.org/wiki/MIT">MIT</a> (<em>Massachusetts Institute of Technology</em>, Instituto Tecnológico de Massachusetts). Fue desarrollado en <a title="1991" href="http://es.wikipedia.org/wiki/1991">1991</a> como reemplazo del algoritmo <a title="MD4" href="http://es.wikipedia.org/wiki/MD4">MD4</a> después de que <a title="Hans Dobbertin" href="http://es.wikipedia.org/wiki/Hans_Dobbertin">Hans Dobbertin</a> descubriese su debilidad.A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en <a title="1996" href="http://es.wikipedia.org/wiki/1996">1996</a>, <a title="Hans Dobbertin" href="http://es.wikipedia.org/wiki/Hans_Dobbertin">Hans Dobbertin</a> anunciase una <a title="Colisión (hash)" href="http://es.wikipedia.org/wiki/Colisi%C3%B3n_%28hash%29">colisión de <em>hash</em></a> plantea una serie de dudas acerca de su uso futuro.</p></blockquote>
<p>Como comentaba antes, MD5 es el sistema más utilizado.</p>
<p><span style="color:#ff0000;"><strong>Comprobando MD5 en Windows</strong></span></p>
<p>Veamos un ejemplo:</p>
<p>Nos queremos descargar una ISO de Debian, por ejemplo vamos a la página de descargas.</p>
<p><a href="http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/" target="_blank">Pagina de descargas de Debian</a></p>
<p>Nos descargamos la ISO.</p>
<p>La página de descargas ya nos ofrece un fichero para comprobar las firmas que es este:</p>
<p><a href="http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/MD5SUMS" target="_blank">Fichero MD5</a></p>
<p>Vamos a sacar el MD5 de la imagen del CD de Debian en Windows. Yo lo he echo con el programa MD5SUM.</p>
<p>Lo podemos descargar de aqui:</p>
<p><a href="http://www.etree.org/md5com.html" target="_blank">MD5SUM</a></p>
<p>Después de descargarlo y probarlo nos sale esto:</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/comprobar_md51.png"><img class="aligncenter size-full wp-image-1813" title="comprobar_md5" src="http://seifreed.wordpress.com/files/2009/11/comprobar_md51.png" alt="comprobar_md5" width="500" height="143" /></a></p>
<p>Como veis nos da el hash, ahora vamos a comprobarlo con el hash que nos ofrecen:</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/md5_comprobado.png"><img class="aligncenter size-full wp-image-1814" title="md5_comprobado" src="http://seifreed.wordpress.com/files/2009/11/md5_comprobado.png" alt="md5_comprobado" width="497" height="24" /></a></p>
<p>Si miráis en la web que os he pasado antes la de <a href="http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/MD5SUMS" target="_blank">Fichero MD5</a>. Podemos ver que la firma ofrecida y la que hemos comprobado <strong>son iguales</strong>. Es decir, la ISO que tenemos es <strong>totalmente original</strong>.</p>
<p><strong><span style="color:#ff0000;">Comprobando MD5 en Ubuntu:</span></strong></p>
<p>Primero de todo instalaremos un paquete que nos hace falta:</p>
<blockquote><p>sudo apt-get install sleuthkit</p></blockquote>
<p>Instalamos el paquete y ya podemos comprobar la integridad del fichero.</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/md5_ubuntu.png"><img class="aligncenter size-full wp-image-1815" title="md5_ubuntu" src="http://seifreed.wordpress.com/files/2009/11/md5_ubuntu.png" alt="md5_ubuntu" width="500" height="120" /></a></p>
<p>Con esto obtenemos el hash MD5 en Ubuntu</p>
<p><span style="color:#ff0000;"><strong>Comprobando MD5 en MAC OS X</strong></span></p>
<p>En MAC utilizaremos una herramienta que nos comprueba el hash, lo podemos encontrar aquí:</p>
<p><a href="http://www.apple.com/downloads/macosx/networking_security/md5_eternalstormssoftware.html" target="_blank">MD5</a></p>
<p>Lo utilizamos y calculamos el hash MD5 que queramos:</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/md5_mac_os_x.png"><img class="aligncenter size-full wp-image-1816" title="MD5_mac_os_x" src="http://seifreed.wordpress.com/files/2009/11/md5_mac_os_x.png" alt="MD5_mac_os_x" width="500" height="161" /></a></p>
<p>Ahora vamos por el SHA1.</p>
<p>Aunque no tan utilizado como el MD5, se tiende a migrar ya hacia el SHA1.</p>
<blockquote><p>es un sistema de <a title="Función hash" href="http://es.wikipedia.org/wiki/Funci%C3%B3n_hash">funciones <em>hash</em></a> criptográficas relacionadas de la <a title="Agencia de Seguridad Nacional de los Estados Unidos" href="http://es.wikipedia.org/wiki/Agencia_de_Seguridad_Nacional_de_los_Estados_Unidos">Agencia de Seguridad Nacional de los Estados Unidos</a> y publicadas por el <em>National Institute of Standards and Technology</em> (NIST). El primer miembro de la familia fue publicado en <a title="1993" href="http://es.wikipedia.org/wiki/1993">1993</a> es oficialmente llamado <strong>SHA</strong>. Sin embargo, hoy día, no oficialmente se le llama <strong>SHA-0</strong> para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de <strong>SHA-1</strong>. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: <strong>SHA-224</strong>, <strong>SHA-256</strong>, <strong>SHA-384</strong>, y <strong>SHA-512</strong> (llamándose <strong>SHA-2</strong> a todos ellos).</p></blockquote>
<p>Vamos a ver como podemos comprobar la firma SHA1.</p>
<p>En la misma imagen de Debian.</p>
<p>Primero vemos como la página nos ofrece las firmas de hash</p>
<p><a href="http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/SHA1SUMS" target="_blank">Hashes SHA1</a></p>
<p>Comprobando firmas sha1 en Windows</p>
<p>Para hacer la comprobación de sha1 nos tenemos que descargar el ejecutable, lo podemos encontrar aqui:</p>
<p><a href="ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.exe" target="_blank">Sha1sum</a></p>
<p>Lo ejecutamos y comprobamos la firma</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/sha1_windows.png"><img class="aligncenter size-full wp-image-1817" title="sha1_windows" src="http://seifreed.wordpress.com/files/2009/11/sha1_windows.png" alt="sha1_windows" width="500" height="35" /></a></p>
<p>Ya tenemos nuestra firma SHA1 que podemos comprobar con nuestro fichero.</p>
<p><span style="color:#ff0000;"><strong>Comprobando Sha1 en Ubuntu.</strong></span></p>
<p>Con el paquete que instalamos antes no haría falta instalar nada más.</p>
<p>Miremos como se hace:</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/sha1_ubuntu.png"><img class="aligncenter size-full wp-image-1818" title="sha1_ubuntu" src="http://seifreed.wordpress.com/files/2009/11/sha1_ubuntu.png" alt="sha1_ubuntu" width="500" height="52" /></a></p>
<p>Ya tenemos nuestra firma en sha1.</p>
<p>Comprobando Sha1 en MAC OS X</p>
<p>Por último en mac, para hacerlo utilizaremos la librería de openssl +sha1</p>
<p>veamos el comando sería así:</p>
<blockquote><p>/usr/bin/openssl sha1 fichero</p></blockquote>
<p>Asi que veamos un ejemplo:</p>
<p><a href="http://seifreed.wordpress.com/files/2009/11/sha1_mac_osx.png"><img class="aligncenter size-full wp-image-1819" title="sha1_mac_osx" src="http://seifreed.wordpress.com/files/2009/11/sha1_mac_osx.png" alt="sha1_mac_osx" width="447" height="51" /></a></p>
<p>Y hasta aquí todo, espero que desde ahora vigiléis lo que os bajais.</p>
<p>&#160;</p>
<p>Saludos</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tworzenie skrótu MD5]]></title>
<link>http://sylwekb.wordpress.com/2009/11/03/tworzenie-skrotu-md5/</link>
<pubDate>Tue, 03 Nov 2009 00:29:52 +0000</pubDate>
<dc:creator>sylwekb</dc:creator>
<guid>http://sylwekb.wordpress.com/2009/11/03/tworzenie-skrotu-md5/</guid>
<description><![CDATA[Ściągnęliśmy plik z internetu np. obraz iso z dystrybucją systemu Linux. Na stronie mamy podany skró]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ściągnęliśmy plik z internetu np. obraz iso z dystrybucją systemu Linux. Na stronie mamy podany skrót md5, dzięki któremu możemy sprawdzić po pobraniu czy plik nie uległ zmianie lub też można sprawdzić posiadając wcześniej wygenerowaną sumę kontrolną da się wykonać sprawdzenie czy plik nie został zmodyfikowany. Do tego celu posłużymy się poleceniem <span style="color:#800000;">md5sum</span>.<!--more-->Polecenie to nie posiada zbyt wielu opcji, ale warto te opcje omówić:</p>
<p><span style="color:#008000;">-b</span> &#8211; każdy plik, który jest odczytywany jest odczytywany w trybie binarnym. Natomiast w systemach GNU nie ma to znaczenia.</p>
<p><span style="color:#008000;">-t</span> &#8211; każdy plik, który jest odczytywany jest odczytywany w trybie tekstowym. I podobnie jak w opcji<span style="color:#800000;"> -b</span> w GNU nie ma to znaczenia</p>
<p><span style="color:#008000;">-c</span> &#8211; opcja ta służy do sprawdzenia czy plik i jego suma kontrolna są zgodne. Do tej opcji wykorzystujemy plik, który zawiera sumę kontrolną oraz nazwę pliku, z którego ta suma została utworzona</p>
<p><span style="color:#008000;">&#8211;quiet</span> &#8211; opcja ta jest przydatna tylko z opcją<span style="color:#800000;"> -c</span>, jeżeli plik, którego suma kontrolna zgadza się z sumą kontrolną z pliku to nie zostanie wyświetlony żaden komunikat</p>
<p><span style="color:#008000;">-w</span> &#8211; opcja przydatna tylko z opcją<span style="color:#800000;"> -c</span>, sprawdza poprawność linii w pliku z sumami kontrolnymi</p>
<p>Skoro opcje mamy już za sobą postaram się pokazać tak naprawdę z czym to się je:</p>
<pre><span style="color:#008000;">md5sum plik_testowy</span></pre>
<p>Powyższe polecenie da w wyniku skrót md5 oraz nazwę pliku dla jakiego skrót został wykonany. Wynik może wyglądać następująco:</p>
<pre><span style="color:#008000;">9eea4f076476a4fab41a647adfb0a471  plik_testowy</span></pre>
<p>Teraz utworzymy plik z sumą kontrolną pliku, dzięki temu będziemy mogli korzystać z opcji <span style="color:#800000;">-c</span>.</p>
<pre><span style="color:#008000;">md5sum plik_testowy &#62; plik_testowy.md5</span></pre>
<p>Plik będzie oczywiście zawierał takie same dane jak po wpisaniu polecenia <span style="color:#800000;">md5sum plik_testowy</span>. Nazwa pliku ze skrótem md5 może być dowolna, podobnie jak rozszerzenie.</p>
<pre><span style="color:#008000;">md5sum -c plik_testowy.md5</span></pre>
<p>W wyniku tego polecenia powinniśmy otrzymać potwierdzenie, że suma kontrolna wykonana z pliku o nazwie &#8220;<span style="color:#800000;">plik_testowy</span>&#8221; zgadza się z sumą kontrolną zapisaną w pliku &#8220;<span style="color:#800000;">plik_testowy.md5</span>&#8220;.</p>
<pre><span style="color:#008000;">md5sum --quiet -c plik_testowy.md5 </span></pre>
<p>Teraz w przypadku poprawnych sum nie zostanie wyświetlony żaden komunikat.</p>
<pre><span style="color:#008000;">md5sum -w -c plik_testowy.md5</span></pre>
<p>Jeżeli na przykład zostanie dopisane coś przed linią zawierającą skrót md5 oraz nazwę pliku (taki celowy błąd), to dzięki tej opcji zostanie wyświetlony odpowiedni komunikat informujący o błędzie.</p>
<p>Zachęcam do komentarzy oraz do przeczytania podręcznika systemowego (<span style="color:#800000;">man md5sum</span>, <span style="color:#800000;">info md5sum</span>).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[HashTab]]></title>
<link>http://mortuux.wordpress.com/2009/10/24/hashtab/</link>
<pubDate>Sat, 24 Oct 2009 12:41:40 +0000</pubDate>
<dc:creator>Mortuus</dc:creator>
<guid>http://mortuux.wordpress.com/2009/10/24/hashtab/</guid>
<description><![CDATA[HashTab es un programa que añade una pestaña en la opción Propiedades con el CRC32, MD5 y SHA-1 de u]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a title="HashTab" href="http://beeblebrox.org/">HashTab</a> es un programa que añade una pestaña en la opción Propiedades con el CRC32, MD5 y SHA-1 de un archivo.</p>
<p>Sirve para comprobar si un archivo se ha descargado correctamente, o para comprobar su veracidad y asegurarnos de que no sea algo que no deseamos.</p>
<p>Normalmente cuando descargamos archivos grandes, como por ejemplo la ISO de un sistema, en la propia página nos proporcionan el MD5 que debería tener el archivo correcto. Si nuestro MD5 no coincide, esque algo falla y deberemos descargarlo otra vez.</p>
<p>Para acceder a HashTab, es muy sencillo:</p>
<p><em>Botón derecho sobre el archivo-&#62;Propiedades-&#62; Pestaña Hash de Archivos </em></p>
<p><em> </em></p>
<p><em></p>
<div class="wp-caption alignnone" style="width: 384px"><img title="HashTab" src="http://farm3.static.flickr.com/2428/4038881135_01ffcd0e10_o.jpg" alt="HashTab" width="374" height="323" /><p class="wp-caption-text">HashTab</p></div>
<p></em></p>
<p><em><br />
</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Nedrošas paroles #2009 prologs]]></title>
<link>http://blackhalt.wordpress.com/2009/10/15/nedrosas-paroles-2009-prologs/</link>
<pubDate>Thu, 15 Oct 2009 09:01:19 +0000</pubDate>
<dc:creator>BlackHalt</dc:creator>
<guid>http://blackhalt.wordpress.com/2009/10/15/nedrosas-paroles-2009-prologs/</guid>
<description><![CDATA[Ja tu esi &#8220;apgrābstījis&#8221; ap 500 000 (skaitlis izdomāts) paroļu hešu, tad tas ne vienmēr ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone" title="Drošība" src="http://blackhalt.files.wordpress.com/2008/01/security.png?w=38&#038;h=38" alt="" width="38" height="38" /> Ja tu esi &#8220;apgrābstījis&#8221; ap 500 000 (skaitlis izdomāts) paroļu hešu, tad tas ne vienmēr nozīmē, ka esi &#8220;apgrābstījis&#8221; 500 K lietotāju <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Zemāk mēģināšu, no sava skatu punkta, izklāstīt, kā tas tā ir.</p>
<p>Pieņemsim, mums ir <a title="Satiric misspelling" href="http://go2.lv/gv">M$</a> pofig lietotājs Jānis.</p>
<p>Ir mums arī paviršs lietotājs Pēteris.</p>
<p>Un ir mums arī lietotāja Anna.</p>
<p>Visi viņi ir piereģistrējušies 10 vienādos brīnumos, kuros pieprasa paroli.</p>
<p>Lietotājs Jānis, būdams kaislīgs antivīrusa programmu fans, izvēlas neko neizvēlēties.</p>
<p>Jānis piereģistrējās 10 resursos ar paroli 1.</p>
<p>Tai pat laikā, paviršais lietotājs Pēteris, M$ sabrīnīts un iebaidīts, piereģistrējās augstāk minētos resursos ar dažādām parolēm:</p>
<p>4, 2, 3, 1, 5, 6, 7, 8, 9, 1</p>
<p>Anna, kā jau parasts lietotājs, lieto drošākās paroles:</p>
<p>10, 11, 12, 13, 14, 15, 16, 17, 18, 19</p>
<p>Un tagad &#8211; kā rodas tas 500 K, kas ir gandrīz visi LV interneta lietotāji?</p>
<p>Viss noslēpums slēpjas stulbumā!</p>
<p>Tātad, mums ir 3 (trīs) lietotāji, kas katrs piereģistrējies 10 nevajadzīgos brīnumos, kur pieprasa paroles.</p>
<p>Kopā &#8220;iztērētas&#8221; 30 paroles.</p>
<p>Zīmējums:</p>
<p>Jāņa paroles &#8211; <span style="color:#ff0000;"><strong>1</strong></span></p>
<p>Pētera paroles &#8211; 4, 2, 3, <span style="color:#ff0000;"><strong>1</strong></span>, 5, 6, 7, 8, 9, <span style="color:#ff0000;"><strong>1</strong></span></p>
<p>Annas paroles &#8211; 10, 11, 12, 13, 14, 15, 16, 17, 18, 19</p>
<p>Kā redzams &#8220;zīmējumā un grafikos&#8221;, dažu un dažas paroles sakrīt.</p>
<p>Sakrīt divas Pētera paroles ar Jāņa parolēm.</p>
<p>Tātad faktiski &#8220;paroles&#8221; ir tikai 19 gabalas.</p>
<p>Bija labi domāts, ka tās būs 30?</p>
<p>Šajā vietā veidojās pirmais 500 K pārpalikums &#8211; &#8220;pazūd&#8221; 11 paroles.</p>
<p>Paliek &#8211; 19.</p>
<p>Nesatraucies, lasītāj, pa 10 gadiem ir izdomātas X metodes, kas nav tik primitīvas, kā es te muldu <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Otrs variants</p>
<p>10 Lietotāji un viņu 5 paroles!</p>
<p>A = 12345</p>
<p>B = abc1d</p>
<p>C = a6789</p>
<p>D = defgh</p>
<p>E = i1jhl</p>
<p>F = mn11o</p>
<p>G = ba123</p>
<p>H = prstu</p>
<p>I = vz12a</p>
<p>J = qwert</p>
<p>Nezīmēju grafikus, jo tas būtu jāsaprot, ka &#8220;kliedēti viņi ar savam parolēm agri vai vēlu satiksies&#8221;.</p>
<p>Nekad nebūs tā, ka visiem un visur būs unikālas paroles, ņemot vērā, ka ir qwerty tastatūra utml.</p>
<p>Rezumē</p>
<p>Līdz ar to, 500 K heši nav 500 K paroles.</p>
<p>Labākajā gadījumā tās ir 316 K.</p>
<p>Labākajā!</p>
<p>Bez tam, daudzi lietotāji veido vairākus paralēlus kontus ar vai bez vienādām parolēm.</p>
<p>Tieši šī iemesla dēļ ir grūti iegūstama populārāko paroļu statistika.</p>
<p>Var mērīt pēc unikālajiem hešiem.<br />
Var mērīt pec visiem hešiem.</p>
<p>Ar 500 K hešu arsenālu ir vieglak piemeklēt vienu konkrētu hešu nekā ar to 1 hešu mocīties atsevišķi.</p>
<p>Par nepielasītām parolēm utml. &#8211; citreiz, nākamreiz <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Šis bija biedrības &#8220;Par drošām parolēm&#8221; un Mērkaķkunga izlūkraksts, jo mēs visi taču esam izlūki!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA["I'm a twat", or "The case of the MD5 crypt"]]></title>
<link>http://khromov.wordpress.com/2009/10/12/im-a-twat-or-the-case-of-the-md5-crypt/</link>
<pubDate>Sun, 11 Oct 2009 23:05:31 +0000</pubDate>
<dc:creator>khromov</dc:creator>
<guid>http://khromov.wordpress.com/2009/10/12/im-a-twat-or-the-case-of-the-md5-crypt/</guid>
<description><![CDATA[Proud member of the &#8220;fail whale&#8221; fan club! No wait, I mean I&#8217;m on Twitter! That]]></description>
<content:encoded><![CDATA[Proud member of the &#8220;fail whale&#8221; fan club! No wait, I mean I&#8217;m on Twitter! That]]></content:encoded>
</item>
<item>
<title><![CDATA[How to store passwords in Java]]></title>
<link>http://mcoder.wordpress.com/2009/10/09/how-to-store-passwords-in-java/</link>
<pubDate>Thu, 08 Oct 2009 19:03:56 +0000</pubDate>
<dc:creator>Swapnonil Mukherjee</dc:creator>
<guid>http://mcoder.wordpress.com/2009/10/09/how-to-store-passwords-in-java/</guid>
<description><![CDATA[There are two choices Jasypt Here are the cardinals rules of storing user passwords, and these not o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There are two choices</p>
<h3>Jasypt</h3>
<p>Here are the cardinals rules of storing user passwords, and these not only apply to Java but to all other programming language as well.<a href="http://www.jasypt.org/howtoencryptuserpasswords.html">How to encrypt user passwords.</a>Read this before going any further</p>
<p>To summarize, you must use an secure hashing algorithm which which allows for a random salt as an input, and one which hashes the resultant output at least 1000 times.</p>
<p>The generic form of any secure hashing works like this.</p>
<p><strong>Generating a Hash</strong></p>
<pre class="brush: ruby;">
salt = GET salt
hash_bytes = algo(&#34;data to hash&#34;,salt,number of rounds)
hash_string = base64 ecnode(hash_bytes)
store(hash_string)
</pre>
<p><!--more--><br />
You supply a salt using any random salt generator. The number of rounds must be more than 1000. This is to make brute force reversal computationly expensive. The algorithm therefore takes 3 parameters the data itself, the random salt, and number of rounds. The resulting hash is in bytes. The raw bytes however cannot be stored easily to databases. Therefore we convert it to a hexadecimal string which can be easily stored.</p>
<p><strong>Checking passwords</strong></p>
<pre class="brush: ruby;">
submitted_password = GET passwords
hash_bytes = algo(submitted_password,salt,number of rounds)
hash_string = base64 ecnode(hash_bytes)
stored_hash = GET stored hash
IF hash_string = stored_hash
	password is valid
</pre>
<p>Checking a password involves generating the hash again from the submitted password and then comparing the hash to the stored hash. The basic premise is that the same password, with the same salt and using the same number of rounds always generates the same hash.</p>
<p>However Jasypt makes all this super easy. It hides all that complexity. Here&#8217;s how you use it.</p>
<pre class="brush: java;">
import org.jasypt.util.password.*;

import java.util.*;

/**
 * @author $Author$
 * @version $Revision$
 *          Created on Oct 8, 2009-3:01:49 PM
 */
public class JasyptDemo
{
	private static final String username = &#34;testuser&#34;;
	private static final String userpass = &#34;testpass&#34;;
	private static LinkedHashMap&#60;String, String&#62; database = new LinkedHashMap&#60;String, String&#62;();

	public String encryptPassword()
	{
		StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor();
		String encryptedPassword = passwordEncryptor.encryptPassword(userpass);
		storePasswordForUser(username, encryptedPassword);
		return encryptedPassword;
	}

	public boolean checkPassword(String username, String submittedPassword)
	{
		StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor();
		String encryptedPassword = database.get(username);
		return passwordEncryptor.checkPassword(submittedPassword, encryptedPassword);
	}

	public void storePasswordForUser(String username, String hashedPassword)
	{
		// use jdbc to store the username and hashed password in the database.
		database.put(username, hashedPassword);
	}

	public String getPasswordForUser(String username)
	{
		// use jdbc to retrieve the password for this username,
		return database.get(username);
	}

	public static void main(String[] args)
	{
		JasyptDemo encrypter = new JasyptDemo();
		encrypter.encryptPassword();

		JasyptDemo checker = new JasyptDemo();
		System.out.println(&#34;Passwords Matched &#34; + (checker.checkPassword(username, userpass)));
	}
}
</pre>
<p>What Jasypt does is that it stores the salt inside the hash itself. This means there is no need to store the salt seprately. You just store the hashed password and retrieve it each time for comparision when the user supplies their login credentials. It can&#8217;t get easier than this.</p>
<h3>JBcrypt</h3>
<p>If you thought Jasypt was simple there something even simpler than this. It&#8217;s called <a href="http://www.mindrot.org/projects/jBCrypt/">JBcrypt</a>. JBcrypt is a Java implementation of OpenBSD&#8217;s Blowfish password hashing scheme. Here&#8217;s example of using JBcrypt.</p>
<pre class="brush: java;">
// Hash a password for the first time
String hashed = BCrypt.hashpw(password, BCrypt.gensalt());

// gensalt's log_rounds parameter determines the complexity
// the work factor is 2**log_rounds, and the default is 10
String hashed = BCrypt.hashpw(password, BCrypt.gensalt(12));

// Check that an unencrypted password matches one that has
// previously been hashed
if (BCrypt.checkpw(candidate, hashed))
	System.out.println(&#34;It matches&#34;);
else i
	System.out.println(&#34;It does not match&#34;);
</pre>
<h3>Comparision Between JBcrypt and Jasypt</h3>
<p><strong>Now comes the fun part. Which is more secure Jasypt or JBcrypt?</strong></p>
<p>Well, out of the box and both are as secure and may be as fast.  Bcrypt&#8217;s strengths and weaknesses are outlined in this paper <a href="http://www.openbsd.org/papers/bcrypt-paper.ps">&#8220;A Future-Adaptable Password Scheme&#8221;</a> by Niels Provos and David Mazières. On the other hand StrongPasswordEncryptor uses SHA-256 as it&#8217;s hashing algorithm. No you do a search of SHA256 VS Bcrypt and decide which to use. I am not suggesting anything.</p>
<p>Jasypt is also configurable. The ConfigurablePasswordEncryptor allows to you change the hashing algorithm. For example let&#8217;s use SHA-512. But since the JDK does not supply a SHA-512 hashing algorithm, you can use the setProvider(&#8220;provider name&#8221;) method of the ConfigurablePasswordEncryptor to set the JCE provider as <a href="http://www.bouncycastle.org/java.html">Bouncy Castle</a> which does support SHA-512.</p>
<p>Here&#8217;s how you use ConfigurablePasswordEncryptor with BouncyCastleProvider and SHA-512 as the hashing algorithm.</p>
<pre class="brush: java;">
import org.bouncycastle.jce.provider.*;
import org.jasypt.util.password.*;

import java.util.*;

/**
 * @author $Author$
 * @version $Revision$
 *          Created on Oct 8, 2009-3:01:49 PM
 */
public class JasyptDemo
{
	private static final String username = &#34;testuser&#34;;
	private static final String userpass = &#34;testpass&#34;;
	private static LinkedHashMap&#60;String, String&#62; database = new LinkedHashMap&#60;String, String&#62;();

	public String encryptPassword()
	{
		ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor();
		passwordEncryptor.setProvider(new BouncyCastleProvider());
		passwordEncryptor.setAlgorithm(&#34;SHA-512&#34;);
		String encryptedPassword = passwordEncryptor.encryptPassword(userpass);
		storePasswordForUser(username, encryptedPassword);
		return encryptedPassword;
	}

	public boolean checkPassword(String username, String submittedPassword)
	{
		ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor();
		passwordEncryptor.setProvider(new BouncyCastleProvider());
		passwordEncryptor.setAlgorithm(&#34;SHA-512&#34;);
		String encryptedPassword = database.get(username);
		return passwordEncryptor.checkPassword(submittedPassword, encryptedPassword);
	}

	public void storePasswordForUser(String username, String hashedPassword)
	{
		// use jdbc to store the username and hashed password in the database.
		database.put(username,hashedPassword);
	}

	public String getPasswordForUser(String username)
	{
		// use jdbc to retrieve the password for this username,
		return database.get(username);
	}

	public static void main(String[] args)
	{
		JasyptDemo encrypter = new JasyptDemo();
		encrypter.encryptPassword();

		JasyptDemo checker = new JasyptDemo();
		System.out.println(&#34;Passwords Matched &#34; + (checker.checkPassword(username, userpass)));
	}
}
</pre>
<p>Which one of Jasypt or JBcrypt do I use? I use JBcrypt, because it is just one Java File. However Jasypt is more than just one algorithm. It&#8217;s a complete framework. Just make sure that you don&#8217;t use the BasicPasswordEncryptor as this uses MD5 as it&#8217;s hashing algorithm. Use the StrongPasswordEncryptor class or the ConfigurablePasswordEncryptor class instead with SHA-512 as the hashing algorithm. Do also remember that SHA and MD5 type algorithms are fixed cost algorithms while Bcrypt is not.</p>
<h3>Summary</h3>
<p>Use JBcrypt.It only does one thing but does it right. Use Jasypt when you want to have a more fine grained control of the entire process.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Algoritmos HASH ]]></title>
<link>http://gupost.wordpress.com/2009/10/02/algoritmos-hash/</link>
<pubDate>Fri, 02 Oct 2009 17:16:08 +0000</pubDate>
<dc:creator>donibaneko</dc:creator>
<guid>http://gupost.wordpress.com/2009/10/02/algoritmos-hash/</guid>
<description><![CDATA[En una reciente jornada sobre digitalización certificada de facturas hubo un término que se utilizó ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En una reciente jornada sobre digitalización certificada de facturas hubo un término que se utilizó con profusión y que, creo, es desconocido &#8211; <strong>HASH</strong> &#8211; o código Hash, o &#8220;huella digital&#8221; y que es utilizado para garantizar o verificar la integridad de dichas facturas.</p>
<p><img class="size-full wp-image-761 alignright" title="criptografia" src="http://gupost.wordpress.com/files/2009/10/criptografia.jpg" alt="criptografia" width="160" height="111" />El reglamento que desarrolla este proceso de digitalización certificada hace hincapié en garantizar la integridad de los documentos digitales que representan a las facturas en papel. Un objeto digital es íntegro si no se ha producido manipulación alguna del objeto original.</p>
<p>Un código Hash es una cadena de números, obtenida de aplicar una función matemática a un objeto digital; entendiendo por objeto digital cualquier archivo sea cual sea su formato: una imagen, una base de datos, un documento, audio, una película, etc.</p>
<p>Lo mejor será que lo pruebes. Accede a este <a href="http://www.fileformat.info/tool/hash.htm" target="_blank">sistema de cálculo en la web y pruébalo</a>. Prueba a introducir una frase o un archivo de tu sistema, pero cuidado con el tamaño de archivo que seleccionas, puede eternizarse en el cálculo.</p>
<p>Yo lo he hecho y lo que me devuelve es un cuadro de resultados como el que sigue:</p>
<div id="attachment_748" class="wp-caption aligncenter" style="width: 310px"><a href="http://gupost.wordpress.com/files/2009/10/hash2.png" target="_blank"><img class="size-medium wp-image-748 " title="hash" src="http://gupost.wordpress.com/files/2009/10/hash1.png?w=300" alt="hash" width="300" height="116" /></a><p class="wp-caption-text">Pulsa en la imagen para ampliarla</p></div>
<p style="text-align:center;">
<p>Lo primero que vemos es que nos devuelve distintos códigos Hash, basados en distintos <strong>algoritmos</strong>, en distintas funciones matemáticas. Además, vemos que dichos códigos tienen <strong>longitudes</strong> distintas, es decir, devuelven huellas más o menos cortas (MD5 de 128 bits, SHA-1 de 160 bits o el SHA-512, de 512 bits).</p>
<p>Estos algoritmos deben garantizar las siguientes propiedades:</p>
<ol>
<li>sea cual sea el tamaño del archivo de entrada, el código Hash siempre tendrá la misma longitud.</li>
<li>si dos objetos digitales producen dos códigos Hash distintos, los dos objetos son diferentes.</li>
<li>no hay dos objetos digitales que produzcan el mismo código Hash (imposibilidad de colisión).</li>
<li>a partir de un código Hash no es posible obtener ni deducir el objeto digital.</li>
</ol>
<p>Evidentemente, no lo harán de igual manera y seguridad algoritmos que generan códigos de 128 bits o de 512 bits. De hecho, se ha evidenciado algún caso de colisión en el algoritmo MD5 que ha sido uno de los más utilizados en los últimos años. Por eso mismo, se han desarrollado códigos de mayor longitud.</p>
<p><img class="size-medium wp-image-764 alignright" title="seguridad" src="http://gupost.wordpress.com/files/2009/10/seguridad.png?w=300" alt="seguridad" width="210" height="152" />Pero continuemos con la explicación. La utilización de este tipo de algoritmos para la digitalización <strong>certificada de facturas</strong> se soporta en la propiedad número 2. Es decir, las aplicaciones homologadas por <a href="http://www.aeat.es/wps/portal/Navegacion2?channel=fcfefe2cc8dc6110VgnVCM1000004ef01e0a____&#38;ver=L&#38;site=56d8237c0bc1ff00VgnVCM100000d7005a80____&#38;idioma=es_ES&#38;menu=0&#38;img=0" target="_blank">AEAT</a> y por nuestras <a href="http://webwpub1.gipuzkoa.net/wps/portal/!ut/p/kcxml/tZLbCoJAEIafpScYz-alsKHrYVFzbdcbEZMy8kCIhk-fRQRFlwpzMfMNfAw_AylwSJt8qE55X7VNfgUGqZYJmYaem1dnAP8msvpLzA_w7bYuZ8z1ecYRxMAEJdtfxu6ObEdGRytIEMNupYakOHveriexMDmegVExJJMd0cSkkn4w-QbYUJUjJE17q-fD3k7fXd4pyqtIyfJSHK6QqLS8k1grBKou-U4RuBBAV1PKRlHZ_i1z8wCHxlEi/delta/base64xml/L3dJdyEvSUVqQUFBVEFBREEhLzRJVUUvNl8wX00x" target="_blank">Haciendas Forales </a>generan un código Hash en el mismo momento del escaneado de las facturas y dicho código más la imagen digital (por ejemplo, un PDF) se firman con un certificado reconocido por dichas entidades.</p>
<p>Si después abrimos este PDF y lo modificamos una nada, incluso sólo con cambiarlo de versión por ejemplo, el código Hash de este nuevo archivo ya no será el mismo y así se evidenciará la <strong>no integridad</strong> de la factura.</p>
<p>Prueba a hacer una pequeña modificación en el archivo que has utilizado antes y vuelve a generar su código Hash, verás como ya no son iguales. Yo lo he hecho con una breve frase:</p>
<p>Digitalización certificada de facturas: ee17a01bf7d63bd84b96ce6f8338483c65c3fcce (SHA-1)</p>
<p>Digitalizacion certificada de facturas: e637b9de6fc61c243c6c9a4315e2bb1a0ef9f628 (SHA-1)</p>
<p>Veis que la única variación es el acento o la ausencia del mismo en la primera letra &#8220;o&#8221;. Si en un archivo fotográfico cambiásemos únicamente un pixel, el resultado también sería distinto.</p>
<p>Esta es la virtud de estas funciones y por qué se confía en ellos para dar confianza y seguridad en la utilización de los documentos digitales.</p>
<p>Espero haber contribuido a aclarar algo más este tema.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:131px;width:1px;height:1px;">
<table class="grid" border="0">
<tbody>
<tr>
<th colspan="2">Results</th>
</tr>
<tr>
<td>Original text</td>
<td><em>(binary only)</em></td>
</tr>
<tr>
<td>Original bytes</td>
<td>255044462d312e350d25e2e3cfd30d0a39322030206f626a0d&#8230; (length=178617)</td>
</tr>
<tr>
<td>Adler32</td>
<td>d91f3ed2</td>
</tr>
<tr>
<td>CRC32</td>
<td>4158094a</td>
</tr>
<tr>
<td>Haval</td>
<td>80e57aca6ef59d019749669b367bcdcf</td>
</tr>
<tr>
<td>MD2</td>
<td>53bdf78f8dc09af900cce0c7a5ac14bf</td>
</tr>
<tr>
<td>MD4</td>
<td>1fabc4fc2a7f87503fca944924b2d170</td>
</tr>
<tr>
<td>MD5</td>
<td>fbc2963188f0c68fc623de5f7418edf1</td>
</tr>
<tr>
<td>RipeMD128</td>
<td>c3ab74908e406488ce749a0eb5a7d899</td>
</tr>
<tr>
<td>RipeMD160</td>
<td>fbccf420fb024d8e34a9b42dccef9e363122a825</td>
</tr>
<tr>
<td>SHA-1</td>
<td>b20d57667a530e08791be4afc7ac471912bcdc19</td>
</tr>
<tr>
<td>SHA-256</td>
<td>1ca7aea4d8659ea821bcb0f8328db487b01c69c7498aaeb89063d1ed58c9f9a4</td>
</tr>
<tr>
<td>SHA-384</td>
<td>93ee624b58b158ecdcfe61c6eca5e6e0a957e29ed717d2e9d174388b9ece7e0c95c9e73d09029337233d58d6947f5288</td>
</tr>
<tr>
<td>SHA-512</td>
<td>af3f457879d4cea78926468292a7d283d5edb447df5079715570c25758de1b2e8f2842793b1f282563cd246b121efea2d400fa02f81c9fd6740c5364d10dae48</td>
</tr>
<tr>
<td>Tiger</td>
<td>0e7d5cedaae9259a746eb784a2e9919468b6418d6a9e5715</td>
</tr>
<tr>
<td>Whirlpool</td>
<td>ff8a06f51dfd22e285774e91c28ceab17bce5542d1258fdec4bd83134a553e267fc12968a0d04f40277dde8c6fd78c3456edf39bd272f4fd0ade04ceb641a22b</td>
</tr>
</tbody>
</table>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Los métodos extensores.]]></title>
<link>http://adeshoras.wordpress.com/2009/09/30/los-metodos-extensores/</link>
<pubDate>Wed, 30 Sep 2009 20:15:34 +0000</pubDate>
<dc:creator>César</dc:creator>
<guid>http://adeshoras.wordpress.com/2009/09/30/los-metodos-extensores/</guid>
<description><![CDATA[Los métodos extensores, nos permiten “extender” la funcionalidad de una clase sin que sea necesario ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Los métodos extensores, nos permiten “extender” la funcionalidad de una clase sin que sea necesario usar herencia o polimorfismo pudiendo añadirle funcionalidad a clases “core” del Framework.</p>
<p>Hay que tener en cuenta, que estos métodos aunque son muy útiles, en ningún caso pueden sustituir a la herencia de clases.</p>
<p>Para crear un método extensor, necesitamos un código tal como el siguiente:</p>
<p><code>public static string ToMD5(this string str)<br />
{<br />
MD5 md5 = MD5CryptoServiceProvider.Create();<br />
ASCIIEncoding encoding = new ASCIIEncoding();<br />
byte[] stream = null;<br />
StringBuilder sb = new StringBuilder();<br />
stream = md5.ComputeHash(encoding.GetBytes(str));<br />
for (int i = 0; i &#60; stream.Length; i++) sb.AppendFormat("{0:x2}", stream[i]);<br />
return sb.ToString();<br />
}</code></p>
<p>Como veis, el metodo extensor, ha de ser estático y ademas, va a recibir siempre como parametro el objeto que lo llama, a este objeto tenemos que añadirle el parametro this.</p>
<p>Así de facil y sencillo. Este tipo de metodos, los había usado con JavaScript y ActionScript, y ahora, mis drugitos, los podemos usar con C#, toda una maravilla.</p>
<p><a title="Descargate el código usado en este post" href="http://cid-4aa6af1b4a447319.skydrive.live.com/self.aspx/a-deshoras-aplicaciones-y-codigos-de-ejemplo/StringExtensionsSolution.zip" target="_blank">Bajate el código y échale un ojo</a>, y cuando uses este tipo de metodos, cuidado, ten en cuenta que no estan pensandos para sustituir la funcionalidad que nos proporciona la herencia, <a title="Ver post sobre los metodos extensores de Francesc Jaumot" href="http://fjaumot.wordpress.com/2008/10/27/metodos-extensores-en-c/" target="_blank">y como bien dicen aquí, es interesante agruparlos en un mismo namespace (que en una única clase)</a>.</p>
<p>Nunca han sido santos de mi devoción los planetas, aunque desde hace unos días, no paro de escuchar su “corrientes circulares en el tiempo”, canción mucho más madura que la mayoría de sus exitos.</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/o-I4uawGPFA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/o-I4uawGPFA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Προστατέψτε τα uploads σας στο Rapidshare]]></title>
<link>http://krakenblog.wordpress.com/2009/09/24/%cf%80%cf%81%ce%bf%cf%83%cf%84%ce%b1%cf%84%ce%ad%cf%88%cf%84%ce%b5-%cf%84%ce%b1-uploads-%cf%83%ce%b1%cf%82-%cf%83%cf%84%ce%bf-rapidshare/</link>
<pubDate>Thu, 24 Sep 2009 17:30:24 +0000</pubDate>
<dc:creator>kraken</dc:creator>
<guid>http://krakenblog.wordpress.com/2009/09/24/%cf%80%cf%81%ce%bf%cf%83%cf%84%ce%b1%cf%84%ce%ad%cf%88%cf%84%ce%b5-%cf%84%ce%b1-uploads-%cf%83%ce%b1%cf%82-%cf%83%cf%84%ce%bf-rapidshare/</guid>
<description><![CDATA[Πως έχει το &#8220;σκηνικό&#8221;. Είσαι μέλος σε μια κοινότητα &#8220;ανταλλαγής&#8221; αρχείων (τα]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Πως έχει το &#8220;σκηνικό&#8221;. Είσαι μέλος σε μια κοινότητα &#8220;ανταλλαγής&#8221; αρχείων (ταινίες, σειρές κλπ) με Rapidshare, το αποδεκτό site από την community.<br />
Κάποιοι, σε κάποιο αντίπαλο forum, κάνουν report τα links, με αποτέλεσμα η RS να τα σβήνει. Δες τώρα πως μπορείς να τα προστατεύσεις.</p>
<p><!--more-->Αν και ήδη χρησιμοποιείτε μια δοκιμασμένη μέθοδος με ένα κρυπτογραφημένο αρχείο που περιέχει τα links (δες σχετικά <a href="http://krakenblog.wordpress.com/2009/08/04/%CF%80%CF%89%CF%82-%CE%BD%CE%B1-%CE%BA%CE%B1%CF%84%CE%B5%CE%B2%CE%AC%CF%83%CE%B5%CF%84%CE%B5-%CE%BC%CE%B5-%CF%84%CE%BF-jdownloader/" target="_blank">εδώ</a>), η συγκεκριμένη μέθοδος είναι καινούρια και πολύ καλή και αυτή.</p>
<p>Η μέθοδος αυτήν, χρησιμοποιεί το σύστημα κρυπτογράφησης <a href="http://en.wikipedia.org/wiki/MD5" target="_blank">MD5</a>, για να πάρει το μοναδικό για κάθε αρχείο hash, το οποίο διαφέρει ακόμη και αν τα αρχεία έχουν τον ίδιο αριθμό.</p>
<p>Σαν αρχή, πρέπει να πάτε σε ένα site RS2RS (Rapidshare to Rapidshare), όπως <a href="http://www.rs2rs.com/" target="_blank">αυτό</a>. Μην μπαίνετε σε οποιοδήποτε site, καθώς μπορεί να είναι fake και να σου κλαπεί ο κωδικός σου στο Rapidshare.</p>
<p>Εκεί γίνεσαι μέλος βασικά.<br />
Τώρα, αφού κάνεις upload στο Rapidshare κάποιο αρχείο, πας εκεί και βάζεις το link που σου έδωσε το Rapidshare και πατάς &#8220;Generate&#8221;.</p>
<p><img class="aligncenter size-medium wp-image-271" title="rs1" src="http://krakenblog.wordpress.com/files/2009/09/rs1.png?w=245" alt="rs1" width="326" height="399" /></p>
<p>Όταν τελειώσει και αλλάξει το md5 των αρχείων, θα σου δώσει ένα link (ή παραπάνω, ανάλογα τα αρχεία). Πας στο λογαριασμό σου στο RS και από εκεί στο Remote Uploads. Εκεί βάζεις τα links που σου έδωσε πριν το site.</p>
<p><img class="aligncenter size-medium wp-image-273" title="rs2" src="http://krakenblog.wordpress.com/files/2009/09/rs2.png?w=300" alt="rs2" width="360" height="262" />Τώρα το RS στην ουσία θα μπερδευτεί και θα νομίζει ότι πρόκειται για 2 διαφορετικά αρχεία. Στην ουσία είναι το ίδιο αρχείο, αλλά σε backup τους.<br />
Δηλαδή για κάθε upload, θα έχεις 2 αρχεία με διαφορετική &#8220;υπογραφή&#8221;, ώστε αν γίνει report το link, το αρχείο μεν θα σβηστεί, αλλά το link θα συνεχίσει να υπάρχει, μιας και θα &#8220;τραβάει&#8221; το backup.<br />
Αν δεις ότι το ένα γίνει report και σβηστεί, μπορείς να ξαναχρησιμοποιήσεις το RS2RS και να ξανά αλλάξεις τα MD5 των αρχείων.<br />
Στην ουσία δεν κάνεις κάτι επιπλέον, δηλαδή νέο upload, αλλά &#8220;κοροϊδεύεις&#8221; την RS και αφήνεις να κάνουν αυτοί τα uploads για τα backups, κάνοντας χρήση των δικών τους σαφώς γρηγορότερων γραμμών.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Don't use true filenames on your server]]></title>
<link>http://dokeoslead.wordpress.com/2009/09/18/dont-use-true-filenames-on-your-server/</link>
<pubDate>Fri, 18 Sep 2009 18:05:22 +0000</pubDate>
<dc:creator>ywarnier</dc:creator>
<guid>http://dokeoslead.wordpress.com/2009/09/18/dont-use-true-filenames-on-your-server/</guid>
<description><![CDATA[In a recent meeting with the Dokeos 2.0 team, I realized that sometimes things are not quite evident]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In a recent meeting with the Dokeos 2.0 team, I realized that sometimes things are not quite evident. One of these cases that can only be understood with experience is that there&#8217;s no use in allowing a user to upload files and keep the true filenames on the server&#8217;s disk. In fact, it is quite a bigger problem to do that instead of changing the filenames and storing files as hashes.</p>
<h2>Reason 1: Avoid security issues</h2>
<p>When uploading a file to the server, you will have filters in place (won&#8217;t you?). This being said, you would have to be very good technically to know exactly what kind of files represent a danger to your server if accessed directly. For example, a user could upload an example PHP script called, let&#8217;s say, &#8220;test.php&#8221;, and this script could contain malicious code. If a user is able to upload such script and the same (or another) user can access that file directly (like http://www.example.com/media/test.php), then the access itself will trigger the execution of this script on your server and the implied malicious effect.</p>
<p>Now, what people know a little less, is that a file called &#8220;test.php.txt&#8221; can also be interpreted as a PHP script (you didn&#8217;t know, did you?).</p>
<p>There are loads of other examples of file extensions that are dangerous to your server in one case or another, but the idea is always the same. You don&#8217;t want users to be able to upload these files &#8220;as is&#8221; and be able to access them without your approval. You could use .htaccess rules, but then you would have to rely on the fact that the server you&#8217;re going to install your application to actually manages these .htaccess rules. In free software, that&#8217;s something complicated to do (or at least if you do it, it becomes complicated for the user to install it).</p>
<h2>Reason 2: Character encoding</h2>
<p><!--You might be surprised, one day, to see that a Thailandese comes to your app and tries uploading a file with a strange name (and obviously non-ASCII characters). Now this *might* just work out if your server actually accepts this encoding, but as you are not sure on what server you're going to install your app, you don't want to have to deal with this complexity if it is not necessary.--></p>
<h2>Reason 3: Character casing</h2>
<p><!--If you're dealing with an application that will ship on both Windows and Linux servers, you will probably know that Windows doesn't care about a name being lowercase or uppercase. Well, this could lead to more headaches as well on the server side.--></p>
<h2>Reason 4: Updating filenames</h2>
<p><!--By having all original file names stored into the database, you can easily change these names through the web interface without a need for accessing the file system (well, obviously the database management system will have to, but this will probably cost much less effort).--></p>
<h2>Reason 5: Duplication</h2>
<p><!--Actually storing the filenames in the database lets you use integer IDs to uniquely identify every document, so you will be able to have several documents bear the same name without the problems bound to duplicate names from different users.--></p>
<h2>Reason 6: Identifying duplicates</h2>
<p><!--Using MD5 hashes ensures the same file will have the same hash, so you are able to quickly identify (if needed) that a document is not the exact duplicate of another.--></p>
<h2>Reason 7: Load splitting</h2>
<p><!-- If you actually use MD5 sums, you can also benefit from a side effect, which is that you have a statistically balanced first character to all theses hashes. As such, you can easily split documents into subdirectories depending on their first character (and only have 16 sub-directories as you use the hexadecimal &#34;alphabet&#34;). This is very difficult to have without a MD5 (or other hashing) strategy, as repartition is often unbalanced by tendencies of the human language used to give names to documents (will English documents often start with &#34;z&#34;, for example?).--></p>
<h2>Disadvantages</h2>
<p>When uploading inter-related files (like in the case of an HTML document with CSS and images, for example), you will have to ensure that single files can be queried through your server&#8217;s scripts normally (not by their hash names). This requires a bit more work, but is easily done through a redirection to some &#8220;download.php&#8221; script if available (there are other possible ways).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Use md5 Hash in Phpbb3]]></title>
<link>http://nicnacks.wordpress.com/2009/09/18/use-md5-hash-in-phpbb3/</link>
<pubDate>Fri, 18 Sep 2009 10:23:55 +0000</pubDate>
<dc:creator>Nico Amarilla</dc:creator>
<guid>http://nicnacks.wordpress.com/2009/09/18/use-md5-hash-in-phpbb3/</guid>
<description><![CDATA[Changing phpbb3 hash into md5 is sometimes needed when you are integrating phpbb3&#8217;s login with]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Changing phpbb3 hash into md5 is sometimes needed when you are integrating phpbb3&#8217;s login with a website that uses md5 hash for passwords. Let&#8217;s assume phpbb3 is installed in a folder named &#8216;forums&#8217; and that your phpbb_users table passwords are already in md5 format. </p>
<p>So upon user login, you want phpbb3 to compare the submitted password with the one on the table. The table contains password in md5 format already. Here is the procedure that will make phpbb3 use md5 hash for the submitted password:</p>
<ol>
<li>Go to forums/auth/auth_db.php, line 178-221. Find the following codes 
<pre>
	if (!$row['user_pass_convert'] &#38;&#38; phpbb_check_hash($password, $row['user_password']))
	{
		// Check for old password hash...
		if (strlen($row['user_password']) == 32)
		{
			$hash = phpbb_hash($password);

			// Update the password in the users table to the new format
			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_password = '" . $db-&#62;sql_escape($hash) . "',
					user_pass_convert = 0
				WHERE user_id = {$row['user_id']}";
			$db-&#62;sql_query($sql);

			$row['user_password'] = $hash;
		}

		if ($row['user_login_attempts'] != 0)
		{
			// Successful, reset login attempts (the user passed all stages)
			$sql = 'UPDATE ' . USERS_TABLE . '
				SET user_login_attempts = 0
				WHERE user_id = ' . $row['user_id'];
			$db-&#62;sql_query($sql);
		}

		// User inactive...
		if ($row['user_type'] == USER_INACTIVE &#124;&#124; $row['user_type'] == USER_IGNORE)
		{
			return array(
				'status'		=&#62; LOGIN_ERROR_ACTIVE,
				'error_msg'		=&#62; 'ACTIVE_ERROR',
				'user_row'		=&#62; $row,
			);
		}

		// Successful login... set user_login_attempts to zero...
		return array(
			'status'		=&#62; LOGIN_SUCCESS,
			'error_msg'		=&#62; false,
			'user_row'		=&#62; $row,
		);
	}</pre>
</li>
<li>Replace it with
<pre>
if (md5($password) == $row['user_password']){
		if ($row['user_login_attempts'] != 0)
		{
			// Successful, reset login attempts (the user passed all stages)
			$sql = 'UPDATE ' . USERS_TABLE . '
				SET user_login_attempts = 0
				WHERE user_id = ' . $row['user_id'];
			$db-&#62;sql_query($sql);
		}

		// User inactive...
		if ($row['user_type'] == USER_INACTIVE &#124;&#124; $row['user_type'] == USER_IGNORE)
		{
			return array(
				'status'		=&#62; LOGIN_ERROR_ACTIVE,
				'error_msg'		=&#62; 'ACTIVE_ERROR',
				'user_row'		=&#62; $row,
			);
		}

		// Successful login... set user_login_attempts to zero...
		return array(
			'status'		=&#62; LOGIN_SUCCESS,
			'error_msg'		=&#62; false,
			'user_row'		=&#62; $row,
		);
	}
</pre>
</li>
</ol>
<p>Now if you want to save passwords in md5 format upon user registration, you need to do the following:</p>
<ol>
<li>Go to forums/includes/ucp/ucp_register.php, line 316.</li>
<li>Replace <br /> 
<pre>'user_password'=&#62; phpbb_hash($data['new_password']),</pre>
<p>with </p>
<pre>'user_password'=&#62; md5($data['new_password']),</pre>
</li>
</ol>
<p>Let me know what you think. Good luck!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Site-to-Site VPN File transfer speed test]]></title>
<link>http://youritguy.wordpress.com/2009/09/14/site-to-site-vpn-file-transfer-speed-test/</link>
<pubDate>Tue, 15 Sep 2009 04:35:32 +0000</pubDate>
<dc:creator>youritguy</dc:creator>
<guid>http://youritguy.wordpress.com/2009/09/14/site-to-site-vpn-file-transfer-speed-test/</guid>
<description><![CDATA[Routers: Cisco 1721 with NO MOD1700-VPN Cisco 2521 Cisco 2650XM with AIM-VPN/BPII-PLUS Computers: De]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Routers:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>Cisco 1721 with NO MOD1700-VPN</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>Cisco 2521</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>Cisco 2650XM with AIM-VPN/BPII-PLUS</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Computers:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>Desktop running Windows Server 2008 SP2 with FTP server role</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>Laptop running Windows Server 2008 SP2 as destination for files</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Results:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-des = 250KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 128 = 300KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 192 = 292KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 256 = 279KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-sha/esp-aes 128 = 266KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-sha/esp-aes 192 = 257KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-sha/esp-aes 256 = 246KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 128/ah-md5 = 258KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 256/ah-md5 = 240KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-aes 256/ah-sha = 207KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-sha/esp-aes 128/ah-sha = 210KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-md5/esp-3des/ah-md5 = 127KB/s</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;"><span style="white-space:pre;"> </span>esp-sha/esp-3des/ah-sha = 115KB/s</div>
<div><strong>Objective:</strong></div>
<div style="padding-left:30px;">To determine how various transform set encryption/hash settings affect the transfer rate of a site-to-site VPN.</div>
<div></div>
<div><strong>Routers:</strong></div>
<div><span style="white-space:pre;"> </span>Cisco 1721 with NO MOD1700-VPN</div>
<div><span style="white-space:pre;"> </span>Cisco 2521</div>
<div><span style="white-space:pre;"> </span>Cisco 2650XM with AIM-VPN/BPII-PLUS</div>
<div></div>
<div><strong>Computers:</strong></div>
<div><span style="white-space:pre;"> </span>Desktop running Windows Server 2008 SP2 with FTP server role</div>
<div><span style="white-space:pre;"> </span>Laptop running Windows Server 2008 SP2 as destination for files</div>
<div></div>
<div><strong>Topology:</strong></div>
<div style="padding-left:30px;">Modified Lab 3-5 from CCNP ISCW Lab Portfolio</div>
<div></div>
<div><strong>Results:</strong></div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-des = 250KB/s</div>
<div><span style="white-space:pre;"> </span></div>
<div><span style="white-space:pre;"> </span><span style="color:#00ff00;">esp-md5/esp-aes 128 = 300KB/s</span></div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-aes 192 = 292KB/s</div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-aes 256 = 279KB/s</div>
<div></div>
<div><span style="white-space:pre;"> </span>esp-sha/esp-aes 128 = 266KB/s</div>
<div><span style="white-space:pre;"> </span>esp-sha/esp-aes 192 = 257KB/s</div>
<div><span style="white-space:pre;"> </span>esp-sha/esp-aes 256 = 246KB/s</div>
<div></div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-aes 128/ah-md5 = 258KB/s</div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-aes 256/ah-md5 = 240KB/s</div>
<div><span style="white-space:pre;"> </span></div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-aes 256/ah-sha = 207KB/s</div>
<div><span style="white-space:pre;"> </span>esp-sha/esp-aes 128/ah-sha = 210KB/s</div>
<div><span style="white-space:pre;"> </span>esp-md5/esp-3des/ah-md5 = 127KB/s</div>
<div><span style="white-space:pre;"> </span><span style="color:#ff0000;">esp-sha/esp-3des/ah-sha = 115KB/s</span></div>
<div></div>
<div><span style="color:#000000;"><strong>Discussion:</strong></span></div>
<div style="padding-left:30px;">According to documentation from Cisco, MD5 is computationally less intensive (though considered less secure) than SHA1; AES (considered more secure) is computationally less intensive than 3/DES. The results confirm this. There is a gain of <strong>50KB/s</strong> when going from <em>esp-md5/esp-des</em> to <em>esp-md5/esp-aes 128</em>. When going from <em>esp-md5/esp-aes</em> to <em>esp-sha/esp-aes</em> there is a decrease in the speed. The slowest speed was achieved when using <em>esp-sha/esp-3des/ah-sha</em>. I would like to note that not all combinations of transform sets were tested.</div>
<div></div>
<div><strong>Conclusion:</strong></div>
<div style="padding-left:30px;">The encryption/hash settings does have an effect on the transfer speed with more computationally intensive settings (SHA1 and 3/DES) having a negative effect on the transfer speed.</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Forensics: Hashes, do they work?]]></title>
<link>http://whereismydata.wordpress.com/2009/09/08/forensics-hashes-do-they-work/</link>
<pubDate>Tue, 08 Sep 2009 17:19:37 +0000</pubDate>
<dc:creator>585</dc:creator>
<guid>http://whereismydata.wordpress.com/2009/09/08/forensics-hashes-do-they-work/</guid>
<description><![CDATA[What’s the big deal about hashes? This article follows on from the previous myths about “verificatio]]></description>
<content:encoded><![CDATA[What’s the big deal about hashes? This article follows on from the previous myths about “verificatio]]></content:encoded>
</item>
<item>
<title><![CDATA[Prova 2004 NAC: Questões de Criptografia (103-112)]]></title>
<link>http://papacharliefox3.wordpress.com/2009/09/08/prova-2004-nac-questoes-de-criptografia-103-112/</link>
<pubDate>Tue, 08 Sep 2009 03:37:43 +0000</pubDate>
<dc:creator>papacharliefox3</dc:creator>
<guid>http://papacharliefox3.wordpress.com/2009/09/08/prova-2004-nac-questoes-de-criptografia-103-112/</guid>
<description><![CDATA[Salve! Seguem abaixo as últimas questões de Criptografia (questões de provas para perito, área 3) qu]]></description>
<content:encoded><![CDATA[Salve! Seguem abaixo as últimas questões de Criptografia (questões de provas para perito, área 3) qu]]></content:encoded>
</item>
<item>
<title><![CDATA[Multi hash at IGHASHGPU]]></title>
<link>http://ixplizit.wordpress.com/2009/09/05/multi-hash-at-ighashgpu/</link>
<pubDate>Sat, 05 Sep 2009 14:50:53 +0000</pubDate>
<dc:creator>ixplizit</dc:creator>
<guid>http://ixplizit.wordpress.com/2009/09/05/multi-hash-at-ighashgpu/</guid>
<description><![CDATA[IGHASHGPU v0.5 released. Unsalted MD5 hashes now can be processed simultaneously, up to 1 000 000 pe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>IGHASHGPU v0.5 released. Unsalted MD5 hashes now can be processed simultaneously, up to 1 000 000 per batch. I guess it&#8217;s fastest MD5 hash cracker on ATI.</p>
<p><a href="http://golubev.com/hashgpu.htm" target="_blank">http://golubev.com/hashgpu.htm</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows must-haves]]></title>
<link>http://aslakjohansen.wordpress.com/2009/09/03/windows-must-haves/</link>
<pubDate>Thu, 03 Sep 2009 21:25:28 +0000</pubDate>
<dc:creator>aslakjohansen</dc:creator>
<guid>http://aslakjohansen.wordpress.com/2009/09/03/windows-must-haves/</guid>
<description><![CDATA[While fooling around with Windows (XP variant) I found a few missing essentials: For transferring fi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>While fooling around with Windows (XP variant) I found a few missing essentials:</p>
<ul>
<li>For transferring files there is <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">putty</a> (there&#8217;s an installer common to almost everything)</li>
<li>For calculating checksums (MD5/SHA1) there is <a href="http://www.beeblebrox.org">HashTab</a> which adds a tab to the file properties dialog box</li>
</ul>
<p>I intend to update this list as I find additions.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[como usar criptografia md5-sha1 no php, como usar md5-sha1 ,como usar sha1]]></title>
<link>http://juancarloscunha.wordpress.com/2009/09/03/como-usar-criptografia-md5-sha1-no-php-como-usar-md5-sha1-como-usar-sha1/</link>
<pubDate>Thu, 03 Sep 2009 20:50:06 +0000</pubDate>
<dc:creator>juancarloscunha</dc:creator>
<guid>http://juancarloscunha.wordpress.com/2009/09/03/como-usar-criptografia-md5-sha1-no-php-como-usar-md5-sha1-como-usar-sha1/</guid>
<description><![CDATA[Criptografia md5 O md5 é uma criptografia fácil de entender e bem prática. O md5 não pode ser ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Criptografia md5<br />
O md5 é uma criptografia fácil de entender e bem prática. O md5 não pode ser &#8220;descriptografado&#8221;, e ele é utilizado geralmente mais para scripts de Login.<br />
Exemplo:</p>
<p>O usuário digita sua senha, a senha digitada é criptografada em md5 e é procurada no database, caso a senha no database (também em md5) for igual a digitada, é liberada o login!</p>
<p>Vou fazer uma simples criptografia da palavra &#8220;atum&#8221;.<br />
 <br />
&#60;?<br />
$palavramd5 = md5(atum);<br />
echo $palavramd5 // Exibe a palavra em md5<br />
?&#62;</p>
<p>Este exemplo pode ser feito do mesmo modo com a criptografia sha1,sha2&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How SSL Works?]]></title>
<link>http://sumonbd.wordpress.com/2009/08/31/how-ssl-works/</link>
<pubDate>Mon, 31 Aug 2009 03:30:47 +0000</pubDate>
<dc:creator>kazi abdullah al Mamun (sumon)</dc:creator>
<guid>http://sumonbd.wordpress.com/2009/08/31/how-ssl-works/</guid>
<description><![CDATA[SSL technology relies on the concept of public key cryptography to accomplish its tasks. In normal e]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="text-align:left;">SSL technology relies on the concept of public key cryptography to accomplish its tasks. In normal encryption, two communicating parties each share a password or key, and this is used to both encrypt and decrypt messages. While this is a very simple and efficient method, it doesn&#8217;t solve the problem of giving the password to someone you have not yet met or trust.</span></p>
<p>In public key cryptography, each party has two keys, a public key and a private key. Information encrypted with a person&#8217;s public key can only be decrypted with the private key and vice versa. Each user publicly tells the world what his public key is but keeps his private key for himself.</p>
<p>The SSL handshake protocol determines how the server and client negotiate which cipher suites they will use to authenticate each other, to transmit certificates, and to establish session keys.</p>
<ul>
<li><span style="text-align:left;">SSL structure builds with <strong> public key </strong><strong>cryptography</strong> </span></li>
</ul>
<ul>
<li><span style="text-align:left;"> <strong>In SSL there are three (3) steps of Encryption.</strong><br />
</span></li>
</ul>
<table border="1" cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="213" valign="top"><strong>Key Exchange</strong></td>
<td width="213" valign="top"><strong>Cipher Encryption</strong></td>
<td width="213" valign="top"><strong>Hashing</strong></td>
</tr>
<tr>
<td width="213" valign="top"><strong>RSA</strong><strong> </strong></p>
<p><strong>Diffie Hellman</strong></p>
<p><strong>DSA<br />
</strong></td>
<td width="213" valign="top"><strong>AES</strong><strong> </strong></p>
<p><strong>DES</strong></p>
<p><strong>RC4<br />
</strong></td>
<td width="213" valign="top"><strong>MD5</strong></p>
<p><strong> </strong><strong>SHA<br />
</strong></td>
</tr>
</tbody>
</table>
<p><span style="text-align:left;"> </span></p>
<p><span style="text-align:left;"> </span></p>
<h3 style="font-size:1.17em;">How SSL Works</h3>
<p>I. Obtaining an SSL Certificate</p>
<p>XYZ Inc., intends to secure their customer checkout process, account management, and internal employee correspondence on their website, xyz.com.</p>
<p><strong>Step 1:</strong><span> </span>XYZ creates a Certificate Signing Request (CSR) and during this process, a private key is generated.</p>
<p><strong>Step 2:</strong><span> </span>XYZ goes to a trusted, third party Certificate Authority . <span style="text-align:left;"><span style="text-align:left;">Certificate Authority </span></span>takes the certificate signing request and validates XYZ in a two step process. <span style="text-align:left;"><span style="text-align:left;">Certificate Authority </span></span>validates that XYZ has control of the domain xyz.com and that XYZ Inc. is an official organization listed in public government records.</p>
<p><strong>Step 3:</strong><span> </span>When the validation process is complete, <span style="text-align:left;"><span style="text-align:left;">Certificate Authority </span></span>gives XYZ a new public key (certificate) encrypted with <span style="text-align:left;"><span style="text-align:left;">Certificate Authority</span></span>&#8217;s private key.</p>
<p><strong>Step 4:</strong><span> </span>XYZ installs the certificate on their webserver(s).</p>
<p>II. How Customers Communicate with the Server using SSL</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-82" title="ssl-handshake" src="http://sumonbd.wordpress.com/files/2009/08/ssl-handshake.jpg" alt="ssl-handshake" width="480" height="390" /></p>
<p><strong>Step 1:</strong><span> </span>A customer makes a connection to xyz.com on an SSL port, typically 443. This connection is denoted with https instead of http.</p>
<p><strong>Step 2:</strong><span> </span>xyz.com sends back its public key to the customer. Once customer receives it, his/her browser decides if it is alright to proceed.</p>
<ul>
<li>The xyz.com public key must NOT be expired</li>
<li>The xyz.com public key must be for xyz.com only</li>
<li>The client must have the public key for <span style="text-align:left;"><span style="text-align:left;">Certificate Authority </span></span>installed in their browser certificate store. If the customer has <span style="text-align:left;"><span style="text-align:left;">Certificate Authority</span></span> trusted public key, then they can trust that they are really communicating with XYZ, Inc.</li>
</ul>
<p><strong>Step 3:</strong><span> </span>If the customer decides to trust the certificate, then the customer will be sent to xyz.com his/her public key.</p>
<p><strong>Step 4:</strong><span> </span>xyz.com will next create a unique hash and encrypt it using both the customer&#8217;s public key and xyz.com&#8217;s private key, and send this back to the client.</p>
<p><strong>Step 5:</strong><span> </span>Customer&#8217;s browser will decrypt the hash. This process shows that the xyz.com sent the hash and only the customer is able to read it.</p>
<p><strong>Step 6:</strong><span> </span>Customer and website can now securely exchange information.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[checkSum+ 1.5.2 ☆☆☆]]></title>
<link>http://macin.wordpress.com/2009/08/31/checksum-plus-152/</link>
<pubDate>Mon, 31 Aug 2009 02:06:46 +0000</pubDate>
<dc:creator>kabbala</dc:creator>
<guid>http://macin.wordpress.com/2009/08/31/checksum-plus-152/</guid>
<description><![CDATA[checkSum+ 1.5.2 (2008-11-25) Pescados Software MD5 Hash를 확인해 주는 유틸리티. CSV와 SFV 포멧을 지원한다. 파일을 드래그하면 M]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div style="text-align:center;">
<table border="0" align="center">
<tbody>
<tr align="center">
<td width="48" valign="top"><a href="http://macin.wordpress.com/files/2009/08/checksumplus-152.png"><img class="alignnone size-thumbnail wp-image-7290" title="checkSum+ 1.5.2 Icon" src="http://macin.wordpress.com/files/2009/08/checksumplus-152.png?w=48" alt="checkSum+ 1.5.2 Icon" width="48" height="48" /></a></td>
<td><a href="http://homepage.mac.com/julifos/soft/checksum/">checkSum+</a> 1.5.2 (2008-11-25)<br />
<a href="http://homepage.mac.com/julifos/soft/">Pescados Software</a></td>
</tr>
</tbody>
</table>
</div>
<p>MD5 Hash를 확인해 주는 유틸리티. CSV와 SFV 포멧을 지원한다.</p>
<p>파일을 드래그하면 MD5 Hash를 생성할 수 있는데, File &#62; Open Explorer 메뉴를 이용하면 여러 종류의 코드를 만들 수 있다.</p>
<div style="text-align:center;"><a href="http://macin.wordpress.com/files/2009/08/explorer.gif"><img class="alignnone size-medium wp-image-7292" title="checkSum+ 1.5.2 Explorer screenshot" src="http://macin.wordpress.com/files/2009/08/explorer.gif?w=300" alt="checkSum+ 1.5.2 Explorer screenshot" width="300" height="255" /></a></div>
<p>MD5, CSV, SFV 파일을 열거나 생성할 때 각각 아이콘이 다르고 창도 새로 열려서 프로그램의 일관성이 떨어져 보이는데, 이전에 만든 서로 다른 프로그램들을 결합시켜서 만들었기 때문인 듯 하다.</p>
<p>물론 Mac OS X에 내장된 MD5 명령을 사용해도 된다. <code>MD5 filename</code> 으로 체크섬을 생성할 수 있다.</p>
<div style="text-align:center;">무료 · <a href="http://homepage.mac.com/julifos/soft/checksum/checksum.zip">download at .Mac homepage</a></div>
</div>]]></content:encoded>
</item>

</channel>
</rss>
