<commit_before>PHPass: Portable PHP password hashing framework
===============================================

What is PHPass?
---------------

PHPass is a library useful in creating secure password hashes suitable for storage in a database.

This library is a reimplementation of the [PasswordHash](http://openwall.com/phpass/) class from Openwall. It uses the same underlying methods as the original class, so the output is 100% compatible. The goal is to create a library which is more flexible than the original.

How does it work?
-----------------

Multiple methods of generating secure password hashes are implemented in the library. The quick version is that it uses [bcrypt](http://en.wikipedia.org/wiki/Bcrypt), and may be combined with [HMAC](http://en.wikipedia.org/wiki/Hmac). Support for the popular [PBKDF2](http://en.wikipedia.org/wiki/PBKDF2) with HMAC-SHA2 hashing is also provided. 

The longer version is that the library may be configured to use a variety of adapters to generate the hash string. While most applications will want to use the Blowfish adapter, it is also possible to generate Extended DES or MD5-based salted passwords (compatible with phpBB). All included adapters support [key stretching](http://en.wikipedia.org/wiki/Key_stretching), and will generate random, unique salt values. Developers may also create their own adapters for custom hashing methods.

As mentioned previously, it is possible, and very easy, to use HMAC + bcrypt using this library. By passing in the options 'hmacKey' and (optionally) 'hmacAlgo', the password string will be hashed using the chosen HMAC algorithm and key prior to being passed to bcrypt. The benefits of this are outlined in [Mozilla's Web Application Security wiki](https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines#Password_Storage).

Requirements
------------

You will need to be using PHP 5.3+ in order to use this library. It should not have any other external dependencies.

Installation
------------

Installation can be done via PEAR.

```bash
pear channel-discover rchouinard.github.com/pear
pear install rych/PHPass-1.0.0RC2
```

Alternatively, you may choose to clone the git repository and add the library folder to your include path.

```bash
git clone git://github.com/rchouinard/phpass.git
```<commit_msg>README update to point to correct PEAR package version<commit_after>PHPass: Portable PHP password hashing framework
===============================================

What is PHPass?
---------------

PHPass is a library useful in creating secure password hashes suitable for storage in a database.

This library is a reimplementation of the [PasswordHash](http://openwall.com/phpass/) class from Openwall. It uses the same underlying methods as the original class, so the output is 100% compatible. The goal is to create a library which is more flexible than the original.

How does it work?
-----------------

Multiple methods of generating secure password hashes are implemented in the library. The quick version is that it uses [bcrypt](http://en.wikipedia.org/wiki/Bcrypt), and may be combined with [HMAC](http://en.wikipedia.org/wiki/Hmac). Support for the popular [PBKDF2](http://en.wikipedia.org/wiki/PBKDF2) with HMAC-SHA2 hashing is also provided. 

The longer version is that the library may be configured to use a variety of adapters to generate the hash string. While most applications will want to use the Blowfish adapter, it is also possible to generate Extended DES or MD5-based salted passwords (compatible with phpBB). All included adapters support [key stretching](http://en.wikipedia.org/wiki/Key_stretching), and will generate random, unique salt values. Developers may also create their own adapters for custom hashing methods.

As mentioned previously, it is possible, and very easy, to use HMAC + bcrypt using this library. By passing in the options 'hmacKey' and (optionally) 'hmacAlgo', the password string will be hashed using the chosen HMAC algorithm and key prior to being passed to bcrypt. The benefits of this are outlined in [Mozilla's Web Application Security wiki](https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines#Password_Storage).

Requirements
------------

You will need to be using PHP 5.3+ in order to use this library. It should not have any other external dependencies.

Installation
------------

Installation can be done via PEAR.

```bash
pear channel-discover rchouinard.github.com/pear
pear install rych/PHPass-1.0.0
```

Alternatively, you may choose to clone the git repository and add the library folder to your include path.

```bash
git clone git://github.com/rchouinard/phpass.git
```
{'fraction_non_alphanumeric': 0.1052405498281787, 'fraction_numerical': 0.0053694158075601375, 'mean_word_length': 4.238470191226097, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2030973', 'n_tokens_mistral': 1227, 'n_tokens_neox': 1170, 'n_words': 592}