<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: A New, Simple Way to Salt your Hashes</title>
	<atom:link href="http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/feed/" rel="self" type="application/rss+xml" />
	<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/</link>
	<description></description>
	<lastBuildDate>Sun, 25 Mar 2012 22:58:44 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: max191</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-15197</link>
		<dc:creator>max191</dc:creator>
		<pubDate>Mon, 05 Oct 2009 08:40:17 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-15197</guid>
		<description>I have discovered and learned much from your blog. Your blog is really good.&lt;br&gt;regards&lt;br&gt;&lt;a rel=&quot;dofollow&quot; href=&quot;http://www.charcoalgrillsite.com&quot; rel=&quot;nofollow&quot;&gt;charcoal grill&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>I have discovered and learned much from your blog. Your blog is really good.<br />regards<br /><a rel="dofollow" href="http://www.charcoalgrillsite.com" rel="nofollow">charcoal grill</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Lahnakoski</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-13315</link>
		<dc:creator>Kyle Lahnakoski</dc:creator>
		<pubDate>Tue, 05 Aug 2008 18:23:47 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-13315</guid>
		<description>There is no advantage to doubling the password.  Knowing that all salted passwords are just doubles effectivly adds zero bits of entropy: The hash for two identical passwords is still identical, and subject to the same rainbow table attack.</description>
		<content:encoded><![CDATA[<p>There is no advantage to doubling the password.  Knowing that all salted passwords are just doubles effectivly adds zero bits of entropy: The hash for two identical passwords is still identical, and subject to the same rainbow table attack.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Lahnakoski</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-11874</link>
		<dc:creator>Kyle Lahnakoski</dc:creator>
		<pubDate>Tue, 05 Aug 2008 17:23:47 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-11874</guid>
		<description>There is no advantage to doubling the password.  Knowing that all salted passwords are just doubles effectivly adds zero bits of entropy: The hash for two identical passwords is still identical, and subject to the same rainbow table attack.</description>
		<content:encoded><![CDATA[<p>There is no advantage to doubling the password.  Knowing that all salted passwords are just doubles effectivly adds zero bits of entropy: The hash for two identical passwords is still identical, and subject to the same rainbow table attack.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Van Winkle</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-13314</link>
		<dc:creator>Justin Van Winkle</dc:creator>
		<pubDate>Mon, 04 Aug 2008 23:11:38 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-13314</guid>
		<description>This doesn&#039;t do anything to thwart rainbow tables, other than increase the length of the password.  The point (one of) of the salt is to make the hash of an obvious password unrecognizable.  Another point is to thwart rainbow tables.  For the first, any salt that doesn&#039;t happen to turn the password into a merely longer common value is fine (you don&#039;t want a salt of &#039;able&#039;, because if the password chosen is &#039;guess&#039; the password + salt is &#039;guessable&#039;).  Also, you want the salt to have some non-printable values, so that an attacker would have to have a much larger set of computed rainbow tables to attempt to brute force passwords.  Finally, you should have a different salt for every user, so that the attacker has to compute rainbow tables for each user vs precomputing for whatever set of salts you are using.&lt;br&gt;&lt;br&gt;So, a salt should: Have non-printable and characters, characters with ord() &gt; 128 and be unique per user.    That way, every password is drawn (potentially) from the full space of available byte values, making lots of attacks harder.</description>
		<content:encoded><![CDATA[<p>This doesn&#39;t do anything to thwart rainbow tables, other than increase the length of the password.  The point (one of) of the salt is to make the hash of an obvious password unrecognizable.  Another point is to thwart rainbow tables.  For the first, any salt that doesn&#39;t happen to turn the password into a merely longer common value is fine (you don&#39;t want a salt of &#39;able&#39;, because if the password chosen is &#39;guess&#39; the password + salt is &#39;guessable&#39;).  Also, you want the salt to have some non-printable values, so that an attacker would have to have a much larger set of computed rainbow tables to attempt to brute force passwords.  Finally, you should have a different salt for every user, so that the attacker has to compute rainbow tables for each user vs precomputing for whatever set of salts you are using.</p>
<p>So, a salt should: Have non-printable and characters, characters with ord() &gt; 128 and be unique per user.    That way, every password is drawn (potentially) from the full space of available byte values, making lots of attacks harder.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Van Winkle</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-11819</link>
		<dc:creator>Justin Van Winkle</dc:creator>
		<pubDate>Mon, 04 Aug 2008 22:11:38 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-11819</guid>
		<description>This doesn&#039;t do anything to thwart rainbow tables, other than increase the length of the password.  The point (one of) of the salt is to make the hash of an obvious password unrecognizable.  Another point is to thwart rainbow tables.  For the first, any salt that doesn&#039;t happen to turn the password into a merely longer common value is fine (you don&#039;t want a salt of &#039;able&#039;, because if the password chosen is &#039;guess&#039; the password + salt is &#039;guessable&#039;).  Also, you want the salt to have some non-printable values, so that an attacker would have to have a much larger set of computed rainbow tables to attempt to brute force passwords.  Finally, you should have a different salt for every user, so that the attacker has to compute rainbow tables for each user vs precomputing for whatever set of salts you are using.

So, a salt should: Have non-printable and characters, characters with ord() &gt; 128 and be unique per user.    That way, every password is drawn (potentially) from the full space of available byte values, making lots of attacks harder.</description>
		<content:encoded><![CDATA[<p>This doesn&#8217;t do anything to thwart rainbow tables, other than increase the length of the password.  The point (one of) of the salt is to make the hash of an obvious password unrecognizable.  Another point is to thwart rainbow tables.  For the first, any salt that doesn&#8217;t happen to turn the password into a merely longer common value is fine (you don&#8217;t want a salt of &#8216;able&#8217;, because if the password chosen is &#8216;guess&#8217; the password + salt is &#8216;guessable&#8217;).  Also, you want the salt to have some non-printable values, so that an attacker would have to have a much larger set of computed rainbow tables to attempt to brute force passwords.  Finally, you should have a different salt for every user, so that the attacker has to compute rainbow tables for each user vs precomputing for whatever set of salts you are using.</p>
<p>So, a salt should: Have non-printable and characters, characters with ord() &gt; 128 and be unique per user.    That way, every password is drawn (potentially) from the full space of available byte values, making lots of attacks harder.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt H</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-13313</link>
		<dc:creator>Matt H</dc:creator>
		<pubDate>Mon, 04 Aug 2008 17:49:08 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-13313</guid>
		<description>IMO, the best salt is randomly picked for each hash. That way, if someone steals you user table, they can&#039;t tell if two users share the same password..</description>
		<content:encoded><![CDATA[<p>IMO, the best salt is randomly picked for each hash. That way, if someone steals you user table, they can&#39;t tell if two users share the same password..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lennon</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-13312</link>
		<dc:creator>Lennon</dc:creator>
		<pubDate>Mon, 04 Aug 2008 17:01:22 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-13312</guid>
		<description>Actually, the comments claiming that this adds *no* security are wrong. Doubling the username and hashing it does prevent one class of attack that a non-salted (or single-salted site) password database is vulnerable to: rainbow tables. If there&#039;s no variability in the inputs to your hashing function (and re-using the same salt for all inputs is basically just defining a new, site-specific hashing function) an attacker can pre-generate hashed versions of easily-guessed passwords, and try an offline attack against your database to see if any of their guesses match an entry in the DB.&lt;br&gt;&lt;br&gt;However, there is certainly some value to generating a unique nonce for each hashed password, and storing it alongside the password. It doesn&#039;t have to be truly *random* though; since it&#039;s sitting right there in the record, it&#039;s not of the class of value like a private key where both entropy and secrecy matter. You can use the username, or the timestamp for when the password was reset, or any other easily-retrievable datum.</description>
		<content:encoded><![CDATA[<p>Actually, the comments claiming that this adds *no* security are wrong. Doubling the username and hashing it does prevent one class of attack that a non-salted (or single-salted site) password database is vulnerable to: rainbow tables. If there&#39;s no variability in the inputs to your hashing function (and re-using the same salt for all inputs is basically just defining a new, site-specific hashing function) an attacker can pre-generate hashed versions of easily-guessed passwords, and try an offline attack against your database to see if any of their guesses match an entry in the DB.</p>
<p>However, there is certainly some value to generating a unique nonce for each hashed password, and storing it alongside the password. It doesn&#39;t have to be truly *random* though; since it&#39;s sitting right there in the record, it&#39;s not of the class of value like a private key where both entropy and secrecy matter. You can use the username, or the timestamp for when the password was reset, or any other easily-retrievable datum.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt H</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-11800</link>
		<dc:creator>Matt H</dc:creator>
		<pubDate>Mon, 04 Aug 2008 16:49:08 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-11800</guid>
		<description>IMO, the best salt is randomly picked for each hash. That way, if someone steals you user table, they can&#039;t tell if two users share the same password..</description>
		<content:encoded><![CDATA[<p>IMO, the best salt is randomly picked for each hash. That way, if someone steals you user table, they can&#8217;t tell if two users share the same password..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lennon</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-11795</link>
		<dc:creator>Lennon</dc:creator>
		<pubDate>Mon, 04 Aug 2008 16:01:22 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-11795</guid>
		<description>Actually, the comments claiming that this adds *no* security are wrong. Doubling the username and hashing it does prevent one class of attack that a non-salted (or single-salted site) password database is vulnerable to: rainbow tables. If there&#039;s no variability in the inputs to your hashing function (and re-using the same salt for all inputs is basically just defining a new, site-specific hashing function) an attacker can pre-generate hashed versions of easily-guessed passwords, and try an offline attack against your database to see if any of their guesses match an entry in the DB.

However, there is certainly some value to generating a unique nonce for each hashed password, and storing it alongside the password. It doesn&#039;t have to be truly *random* though; since it&#039;s sitting right there in the record, it&#039;s not of the class of value like a private key where both entropy and secrecy matter. You can use the username, or the timestamp for when the password was reset, or any other easily-retrievable datum.</description>
		<content:encoded><![CDATA[<p>Actually, the comments claiming that this adds *no* security are wrong. Doubling the username and hashing it does prevent one class of attack that a non-salted (or single-salted site) password database is vulnerable to: rainbow tables. If there&#8217;s no variability in the inputs to your hashing function (and re-using the same salt for all inputs is basically just defining a new, site-specific hashing function) an attacker can pre-generate hashed versions of easily-guessed passwords, and try an offline attack against your database to see if any of their guesses match an entry in the DB.</p>
<p>However, there is certainly some value to generating a unique nonce for each hashed password, and storing it alongside the password. It doesn&#8217;t have to be truly *random* though; since it&#8217;s sitting right there in the record, it&#8217;s not of the class of value like a private key where both entropy and secrecy matter. You can use the username, or the timestamp for when the password was reset, or any other easily-retrievable datum.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: me</title>
		<link>http://codespatter.com/2008/08/04/a-new-simple-way-to-salt-your-hashes/comment-page-1/#comment-13311</link>
		<dc:creator>me</dc:creator>
		<pubDate>Mon, 04 Aug 2008 15:52:14 +0000</pubDate>
		<guid isPermaLink="false">http://codespatter.com/?p=92#comment-13311</guid>
		<description>The problem with this is you are not really salting your hashes. You are just making the passphrase longer. You could add &#039;1234&#039; at the end of everything you hash and don&#039;t tell anyone about this. Maybe read &lt;a href=&quot;http://en.wikipedia.org/wiki/Salt_%2528cryptography%2529&quot;&gt;http://en.wikipedia.org/wiki/Salt_%28cryptograp...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>The problem with this is you are not really salting your hashes. You are just making the passphrase longer. You could add &#39;1234&#39; at the end of everything you hash and don&#39;t tell anyone about this. Maybe read <a href="http://en.wikipedia.org/wiki/Salt_%2528cryptography%2529"></a><a href="http://en.wikipedia.org/wiki/Salt_%28cryptograp.." rel="nofollow">http://en.wikipedia.org/wiki/Salt_%28cryptograp..</a>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

