<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Garage &#187; encryption</title>
	<atom:link href="https://invoicebus.com/garage/tag/encryption/feed/" rel="self" type="application/rss+xml" />
	<link>https://invoicebus.com/garage</link>
	<description>Blog about running a business and solving invoicing and billing problems</description>
	<lastBuildDate>Thu, 30 Apr 2026 14:15:43 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Sleep tight, your data is secure, part 2 &#8211; Password Storage Security</title>
		<link>https://invoicebus.com/garage/sleep-tight-your-data-is-secure-part-2/</link>
		<comments>https://invoicebus.com/garage/sleep-tight-your-data-is-secure-part-2/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 16:26:45 +0000</pubDate>
		<dc:creator><![CDATA[Invoicebus Team]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technical Stuff]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[how we build invoicebus]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[salt]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://garage.invoicebus.com/?p=733</guid>
		<description><![CDATA[<p>Here we will explain how your passwords are stored in the system and all about their security. For storing passwords Invoicebus uses something called one-way encryption with salted hash functions. Why is it called one way? Because it can not be decrypted ever, actually it’s not even an encryption. It’s a hash that is completely [&#8230;]<br />
<h3>Author information</h3>
<div class="ts-fab-wrapper" style="overflow:hidden">
<div class="ts-fab-photo" style="float:left;width:64px"><img alt='Invoicebus Team' src='https://secure.gravatar.com/avatar/a311597603749cd2495cd7100f4a340a?s=64&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div>
<p><!-- /.ts-fab-photo -->
<div class="ts-fab-text" style="margin-left:74px">
<div class="ts-fab-header">
<h4>Invoicebus Team</h4>
</div>
<p><!-- /.ts-fab-header -->
<div class="ts-fab-content" style="margin-bottom:0.5em">
<p><a href="https://invoicebus.com/team/">We're</a> a team comprised of a few die-hard code freaks, lovers of beautiful design, stewards of simplicity, and passionately dedicated to the user experience.  Invoicebus is a great vehicle to express what we do best. <a href="https://invoicebus.com/manifesto/">Click here</a> to learn more on our business philosophy and how we actually do it.</p>
</div>
<div class="ts-fab-footer"> | <a href="http://twitter.com/invoicebus">Twitter</a> | <a href="http://www.facebook.com/invoicebus">Facebook</a> | </div>
<p><!-- /.ts-fab-footer --></div>
<p><!-- /.ts-fab-text --></div>
<p><!-- /.ts-fab-wrapper --></p>
<p>The post <a rel="nofollow" href="https://invoicebus.com/garage/sleep-tight-your-data-is-secure-part-2/">Sleep tight, your data is secure, part 2 &#8211; Password Storage Security</a> appeared first on <a rel="nofollow" href="https://invoicebus.com/garage">Garage</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h2>Here we will explain how your passwords are stored in the system and all about their security.</h2>
<div style="height:20px;"></div>
<p>For storing passwords Invoicebus uses something called one-way encryption with <a href="http://en.wikipedia.org/wiki/Salt_(cryptography)" target="_blank">salted</a> <a href="http://en.wikipedia.org/wiki/Cryptographic_hash_function" target="_blank">hash functions</a>. Why is it called one way? Because it can not be decrypted ever, actually it’s not even an encryption. It’s a hash that is completely different thing. In fact, this is one way ticket algorithm for which there is no returning path. This is too awkward explanation of hashing and it might sounds like a rocket science, so with a couple of diagrams we will try to explain as simple as we can what it’s all about.</p>
<h3>Password Creation</h3>
<p>This process happens every time you enter new password, you sign up, reset or change your password.</p>
<p><a href="http://garage.invoicebus.com/wp-content/uploads/2011/09/invoicebus_password_creation.png" rel="lightbox[733]"><img src="http://garage.invoicebus.com/wp-content/uploads/2011/09/invoicebus_password_creation.png" alt="invoicebus_password_creation" title="Password Creation" width="588" height="549" class="alignnone size-full wp-image-739" /></a></p>
<ul class="myList">
<li>Step 1: Generating random text called random salt, unique for every user.</li>
<li>Step 2: Generating hash value from both your <b>plain text password</b> and <b>the salt</b>. The hashed salt will be stored in the database (DB) for validating the password in future (at login).</li>
<li>Step 3: Generating hash value of the <a href="http://en.wikipedia.org/wiki/Concatenation" target="_blank">concatenated</a> hashes from the previous step. This is the final password hash that will be stored in the database (DB).</li>
</ul>
<p>The entered password is transformed to a binary value which looks like random gibberish, and nobody, absolutely nobody can retrieve the original plain text back, at least not with today&#8217;s technology.</p>
<p>What if two users choose exactly the same password? Will their passwords be represented with same binary values in the database? &#8211; No! That’s what salt ensures, unique and hardened passwords, so every password is absolutely unique in the database. Even if you try to reset the old password by entering a new one that is exactly the same as the old password, its representation would be completely different in the database.</p>
<p>Example:<br />
Old password: invoicebus123    &#8212;&#8211;>  generated as:  8de0c3c519<br />
New password: invoicebus123    &#8212;&#8211;>  generated as:  bc9fe98a12</p>
<h3>Password Validation</h3>
<p>Let see how the password is validated during the login process.<br />
<a href="http://garage.invoicebus.com/wp-content/uploads/2011/09/invoicebus_password_verification.png" rel="lightbox[733]"><img src="http://garage.invoicebus.com/wp-content/uploads/2011/09/invoicebus_password_verification.png" alt="invoicebus_password_verification" title="Password Verification" width="588" height="730" class="alignnone size-full wp-image-740" /></a></p>
<ul class="myList">
<li>Step 1: Generating hash value for your plain text password. Retrieving the stored salt form the database for that particular username.</li>
<li>Step 2: Generating hash value of the concatenated values from the previous step.</li>
<li>Step 3: Comparing the final hash password from the second step with the final password retrieved from the database. If they match the user is authenticated to access the system.</li>
</ul>
<p>If ever happen to forget your password, Invoicebus would be unable to retrieve it in its original plain text representation. That&#8217;s why an email is sent with a link where you can enter a new password.</p>
<p>Be aware of online services that retrieve your password in plain text when you try to reset it. That indicates they don’t use hashing; probably they have some poor password encryption or don’t have an encryption at all. And even hashing is used, it’s a good advice to always choose unique and <a href="http://en.wikipedia.org/wiki/Password_strength" target="_blank">strong password</a> for every online account you own.</p>
<h3>Author information</h3><div class="ts-fab-wrapper" style="overflow:hidden"><div class="ts-fab-photo" style="float:left;width:64px"><img alt='Invoicebus Team' src='https://secure.gravatar.com/avatar/a311597603749cd2495cd7100f4a340a?s=64&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div><!-- /.ts-fab-photo --><div class="ts-fab-text" style="margin-left:74px"><div class="ts-fab-header"><h4>Invoicebus Team</h4></div><!-- /.ts-fab-header --><div class="ts-fab-content" style="margin-bottom:0.5em"><p><a href="https://invoicebus.com/team/">We're</a> a team comprised of a few die-hard code freaks, lovers of beautiful design, stewards of simplicity, and passionately dedicated to the user experience.  Invoicebus is a great vehicle to express what we do best. <a href="https://invoicebus.com/manifesto/">Click here</a> to learn more on our business philosophy and how we actually do it.</p>
</div><div class="ts-fab-footer"> | <a href="http://twitter.com/invoicebus">Twitter</a> | <a href="http://www.facebook.com/invoicebus">Facebook</a> | </div><!-- /.ts-fab-footer --></div><!-- /.ts-fab-text --></div><!-- /.ts-fab-wrapper --><p>The post <a rel="nofollow" href="https://invoicebus.com/garage/sleep-tight-your-data-is-secure-part-2/">Sleep tight, your data is secure, part 2 &#8211; Password Storage Security</a> appeared first on <a rel="nofollow" href="https://invoicebus.com/garage">Garage</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://invoicebus.com/garage/sleep-tight-your-data-is-secure-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
