<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Fri, 24 May 2013 19:17:25 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Joseph Scott's Blog: Slow Hashing]]></title>
      <guid>http://www.phpdeveloper.org/news/17797</guid>
      <link>http://www.phpdeveloper.org/news/17797</link>
      <description><![CDATA[<p>
In <a href="http://josephscott.org/archives/2012/04/slow-hashing/">this new post</a> <i>Joseph Scott</i> takes a look at hashing in PHP, specifically around <a href="http://php.net/md5">md5</a> hashes, and a better alternative (that's also more secure.
</p>
<blockquote>
The majority of the <a href="http://www.codinghorror.com/blog/2012/04/speed-hashing.html">Coding Horror: Speed Hashing</a> post talks about speed based on MD5.  [...] If you are still using MD5 to hash passwords (or worse, aren't hashing passwords at all) then please stop and go use <a href="http://bcrypt.sourceforge.net/">bcrypt</a>. For those using PHP <a href="http://www.openwall.com/phpass/">phpass</a> is a great option.
</blockquote>
<p>
He talks about the <a href="http://php.net/crypt">crypt</a> method, how its encryption method and "cost" value effects the speed and how difficult it would be to generate all possible hashes for a password (hint: crypt with a cost of 13 is worlds better than md5).
</p>]]></description>
      <pubDate>Tue, 10 Apr 2012 11:55:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: PHP 5.3.8 Released!]]></title>
      <guid>http://www.phpdeveloper.org/news/16761</guid>
      <link>http://www.phpdeveloper.org/news/16761</link>
      <description><![CDATA[<p>
On PHP.net they've posted <a href="http://www.php.net/archive/2011.php#id2011-08-23-1">the official announcement</a> about the release of PHP 5.3.8, an release following 5.3.7 to fix some issues with the <a href="http://php.net/crypt">crypt</a> functionality.
</p>
<blockquote>
The PHP development team would like to announce the immediate availability of PHP 5.3.8. This release fixes two issues introduced in the PHP 5.3.7 release: Fixed bug #55439 (crypt() returns only the salt for MD5), reverted a change in timeout handling restoring PHP 5.3.6 behavior, which caused mysqlnd SSL connections to hang (Bug #55283). All PHP users should note that the PHP 5.2 series is NOT supported anymore. All users are strongly encouraged to upgrade to PHP 5.3.8.
</blockquote>
<p>
As always you can download this latest release from <a href="http://us3.php.net/downloads.php">the downloads page</a> (Windows binaries <a href="http://windows.php.net">here</a>). This upgrade is <b>highly</b> recommended if you were running 5.3.7.
</p>]]></description>
      <pubDate>Tue, 23 Aug 2011 11:04:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: 5.3.7 upgrade warning]]></title>
      <guid>http://www.phpdeveloper.org/news/16752</guid>
      <link>http://www.phpdeveloper.org/news/16752</link>
      <description><![CDATA[<p>
In a quick note from the PHP.net site, they have a warning for those running PHP 5.3.7 (the most recent release) - there's a bug that's serious enough (with <a href="http://php.net/crypt">crypt</a>) to where upgrades should probably wait until 5.3.8.
</p>
<blockquote>
Due to unfortunate issues with 5.3.7 (see <a href="https://bugs.php.net/bug.php?id=55439">bug#55439</a>) users should wait with upgrading until 5.3.8 will be released (expected in few days).
</blockquote>
<p>
<a href="https://bugs.php.net/bug.php?id=55439">The issue</a> causes the crypt() function to only return the (MD5-only) salt it was given instead of the correctly hashed string. If you need to replace this immediately, you can pull the latest from <a href="http://snaps.php.net/">the snaps site</a> (or <a href="http://windows.php.net/snapshots/">binaries for Windows</a>). Keep an eye out for PHP 5.3.8 in the near future.
</p>]]></description>
      <pubDate>Mon, 22 Aug 2011 12:32:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Shay Ben Moshe's Blog: Hashing Passwords Properly]]></title>
      <guid>http://www.phpdeveloper.org/news/16335</guid>
      <link>http://www.phpdeveloper.org/news/16335</link>
      <description><![CDATA[<p>
<i>Shay Ben Moshe</i> has a new post to his blog looking at a method he's come up with for <a href="http://blog.shay.co/hashing-passwords-properly/">hashing passwords the proper way</a> and saving them to a database for future checking. His encryption methods of choice <a href="http://php.net/crypt">crypt</a> and a random salt generator.
</p>
<blockquote>
The easy and common solution for this particular problem is to use an one-way hash function, such as md5 and sha1, which takes the password and encrypts it.
Unfortunately, this method is not as strong as you may think. [...] We can protect our password from rainbow tables and similar attacks by using salts.
</blockquote>
<p>
He talks about storing passwords in a database (never as plain text!) and what rainbow tables are and how they can make it simple for a user to break a poorly hashed value. He shows how to use the <a href="http://php.net/crypt">crypt</a> function together with the sha512 hashing tool to make a salt.
</p>]]></description>
      <pubDate>Fri, 13 May 2011 08:47:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Understanding Hash Functions and Keeping Passwords Safe]]></title>
      <guid>http://www.phpdeveloper.org/news/15756</guid>
      <link>http://www.phpdeveloper.org/news/15756</link>
      <description><![CDATA[<p>
On NetTuts.com today there's a new tutorial from <i>Burak Guzel</i> about keeping your passwords (and web applications) safer by <a href="http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe">using hashing with passwords</a> and understanding which of the PHP functions is right for you.
</p>
<blockquote>
From time to time, servers and databases are stolen or compromised. With this in mind, it is important to ensure that some crucial user data, such as passwords, can not be recovered. Today, we are going to learn the basics behind hashing and what it takes to protect passwords in your web applications.
</blockquote>
<p>
The article is a simple introduction to the topic and doesn't claim that it will protect you 100% but it's good to get the ball rolling. They talk about <a href="http://php.net/md5">md5</a> hashing and the <a href="http://php.net/crypt">crypt</a> method. He also outlines a few problems that surround hashing - hash collisions, attackers using "rainbow tables" and how quickly the average computer can run through hashes (an average 8 character password could be broken in around 60 hours). For each, he includes a few things you can do in your code to help prevent them from happening.
</p>]]></description>
      <pubDate>Tue, 18 Jan 2011 08:05:29 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Using GnuPG with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10758</guid>
      <link>http://www.phpdeveloper.org/news/10758</link>
      <description><![CDATA[<p>
The Zend Developer Zone has a <a href="http://devzone.zend.com/article/3753-Using-GnuPG-with-PHP">new tutorial</a> posted today showing how to use the open source encryption tool GnuPG from inside PHP.
<p>
<blockquote>
While GnuPG works very well as a standalone tool, it also plays very well with PHP. This integration is possible due to PHP's ext/gnupg extension, which provides a flexible and powerful API to access GnuPG functions for encryption, decryption, message signing and verification, and key maintenance. And your mission (should you choose to accept it) will be to accompany me over the next few pages, while I give you a crash course in this API, showing you how easy it is to integrate these functions into your next PHP application.
</blockquote>
<p>
The <a href="http://devzone.zend.com/article/3753-Using-GnuPG-with-PHP">tutorial</a> walks you through some of the basic concepts behind the "lock and key" GnuPG implements and how to get the extension installed so you can follow along. His examples range from a basic encryption of a string out to a full encrypt/decrypt example, how to sign information with a key and even a method for sending an encrypted message.
</p>]]></description>
      <pubDate>Mon, 04 Aug 2008 14:32:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: OpenID In PHP PEAR: Proposed!]]></title>
      <guid>http://www.phpdeveloper.org/news/8337</guid>
      <link>http://www.phpdeveloper.org/news/8337</link>
      <description><![CDATA[<p>
<I>Padraic Brady</i> has an announcement posted to his blog today - his OpenID PEAR has <a href="http://blog.astrumfutura.com/archives/303-OpenID-In-PHP-PEAR-Proposed!.html">officially been proposed</a> to the PEAR group for consideration.
</p>
<blockquote>
Yes, my OpenID 2.0 PHP5 Consumer has finally been proposed to PEAR. This brings the OpenID fanaticism on PEAR to four packages: OpenID_Consumer, Services_Yadis, Crypt_HMAC2, Crypt_DiffieHellman.
</blockquote>
<p>
He'll <a href="http://blog.astrumfutura.com/archives/303-OpenID-In-PHP-PEAR-Proposed!.html">be working</a> to get the code "further up to par" including Nonce validation, more consistent error reporting and other operation modes (like check_immediate). He's also included a screencast in the post for those not familiar with OpenID to get their first dose.
</p>]]></description>
      <pubDate>Thu, 26 Jul 2007 11:18:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Esser's Blog: Suhosin 0.9.20 and crypt() Thread Safety Vulnerability]]></title>
      <guid>http://www.phpdeveloper.org/news/7891</guid>
      <link>http://www.phpdeveloper.org/news/7891</link>
      <description><![CDATA[<p>
<i>Stefan Esser</i> <a href="http://blog.php-security.org/archives/82-Suhosin-0.9.20-and-crypt-Thread-Safety-Vulnerability.html">points out</a> the latest release of his PHP security enhancement patch, <A href="http://www.suhosin.org/">Suhosin 0.9.20</a>, and some of the features it adds, a major one specifically.
</p>
<blockquote>
The most important addition is that a mutex is placed around the call to the system's crypt() function to ensure thread safety. This mutex is necessary to close a bunch of possible attacks on the libc crypt() function on multi threaded systems.
</blockquote>
<p>
He goes on to explain why it's so important - correcting a possible race condition between competing threads looking to use the crypt() function at the same time. They use the same shared memory space and, because of this, can return possible invalid data. The patch changes this behavior and replaces it with a blowfish implementation to make things more thread-safe.
</p>]]></description>
      <pubDate>Tue, 22 May 2007 08:34:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[IBM developerWorks: PHP encryption for the common man]]></title>
      <guid>http://www.phpdeveloper.org/news/5868</guid>
      <link>http://www.phpdeveloper.org/news/5868</link>
      <description><![CDATA[<p>
Encryption can be a difficult issue to comprehend, inside of PHP or not. Thankfully, there are resources out there that can help simplify things and bring them down to where they're really useful. <a href="http://www-128.ibm.com/developerworks/opensource/library/os-php-encrypt/?ca=dgr-btw04PHP-encrypt">This new tutorial</a> from the IBM developerWorks site today is just such a resource.
</p>
<blockquote>
In this increasingly virtual online world, you have to be careful to protect your data. Learn the basics of encoding and encrypting important bits of information, such as passwords, credit card numbers, and even entire messages. Get an overview of what it means to encrypt and decrypt information, as well as some practical examples involving passwords and other data, using PHP's built-in functionality.
</blockquote>
<p>
They <a href="http://www-128.ibm.com/developerworks/opensource/library/os-php-encrypt/?ca=dgr-btw04PHP-encrypt">start off</a> where any good encryption article should - with a primer in cyrptography. You can't understand the advanced without a good grasp on the basic. Using this knowledge, they start to work up their form, a simple username and password validation system.
</p>
<p>
They provide all of the code you'll need to build the form, and even intorduce you to the crypt() function. A bad use of this functionality is also illustrated. Of course, encryption is only half the fun, so they <a href="http://www-128.ibm.com/developerworks/opensource/library/os-php-encrypt/?ca=dgr-btw04PHP-encrypt">also include</a> an example of decrypting the same information.
</p>]]></description>
      <pubDate>Tue, 25 Jul 2006 12:45:30 -0500</pubDate>
    </item>
  </channel>
</rss>
